位置: 编程技术 - 正文

详解PHP实现异步调用的4种方法(php yield 异步)

发布时间:2024-01-11

推荐整理分享详解PHP实现异步调用的4种方法(php yield 异步),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:详解php实现异步功能,php yield 异步,php异步请求方式,详解php实现异步传输,详解php实现异步功能,php如何实现异步,详解php实现异步传输,详解php实现异步操作,内容如对您有帮助,希望把文章链接给更多的朋友!

浏览器和服务器之间是通过 HTTP 协议进行连接通讯的。这是一种基于请求和响应模型的协议。浏览器通过 URL 向服务器发起请求,Web 服务器接收到请求,执行一段程序,然后做出响应,发送相应的html代码给客户端。

这就有了一个问题,Web 服务器执行一段程序,可能几毫秒就完成,也可能几分钟都完不成。如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了。

而有的时候,我们更本不关心这些耗时的脚本的返回结果,但却还要等他执行完返回,才能继续下一步。那么有没有什么办法,只是简单的触发调用这些耗时的脚本然后就继续下一步,让这些耗时的脚本在服务端慢慢执行?

详解PHP实现异步调用的4种方法(php yield 异步)

经过试验,总结出来几种方法,和大家share:

1. 最简单的办法,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。这种方法最简单,也最快。服务器端不用做任何的调用。但是缺点是,一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。当然,还可以使用其他的类似原理的方法,比如script标签等等。

2. popen()

所以可以通过调用它,但忽略它的输出。

pclose(popen("/home/xinchen/backend.php &", 'r'));这个方法避免了第一个方法的缺点,并且也很快。但是问题是,这种方法不能通过HTTP协议请求另外的一个WebService,只能执行本地的脚本文件。并且只能单向打开,无法穿大量参数给被调用脚本。并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。

3. 使用CURL这个方法,设置CUROPT_TIMEOUT为1(最小为1,郁闷)。也就是说,客户端至少必须等待1秒钟。

4. 使用fsockopen这个方法应该是最完美的,但是缺点是,你需要自己拼出HTTP的header部分。

所以,总体来看,最好用,最简单的还是第一种方法。最完美的应该是最后一种,但是比较复杂。

标签: php yield 异步

本文链接地址:https://www.jiuchutong.com/biancheng/292448.html 转载请保留说明!

上一篇:7种php基本排序实现方法(php排行)

下一篇:php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)(php正则表达式验证用户名)

  • 小规模纳税人销售自建不动产
  • 小规模纳税开专票享受季度30万纳税
  • 商业写字楼
  • 每年税务师考试几次
  • 建筑公司包工包料账务处理
  • 土地摊销全部计入成本吗
  • 网上申领发票收到后需要怎么操作
  • 残保金退回属于什么业务
  • 货没出,发票先开
  • 应付中转是什么科目
  • 资产负债表其他流动资产包括什么
  • 外贸委外加工企业成本怎么核算
  • 增值税一般纳税人税率是多少?
  • 出口货物补税申报表
  • 公司现金支票取现用途怎么填写
  • 会计学中管理费用属于什么
  • 购入的固定资产
  • 公司注销固定资产清理需要开票吗
  • 公司出租房屋交印花税吗
  • 小规模纳税人如何计算增值税
  • 金税盘820的抵扣联怎么装订?
  • 什么样的应税行为可以扣除
  • 航天信息300元是什么费用
  • 企业将自产产品发放给职工作为福利
  • 涉农贷款损失
  • 职工福利费支出计入什么科目
  • 长期股权投资佣金手续费计入
  • 临时员工什么意思
  • 差额征税和差额计税
  • 委托加工物资什么意思
  • 非营利组织企业所得税政策
  • windows10如何设置桌面背景
  • 在标题栏显示完整页面
  • 应收票据的贴现利息应计入
  • 事业基金的主要账务处理
  • 为什么叫win7
  • 苹果手机怎么修改默认输入法
  • 劳务公司找的临时工工伤怎么赔
  • windows 修改host
  • 固定资产折旧表述不正确的是
  • 查补的增值税能抵留抵吗
  • win11好用吗知乎
  • 会计准则新规
  • 洛阿雷城堡,西班牙韦斯卡 (© Sebastian Wasek/Alamy)
  • 村集体经济组织架构
  • 固定资产没有发票可以计提折旧吗
  • php技术和mysql怎么结合
  • 城镇土地使用税优惠政策
  • 无偿划转的资产交什么税收
  • 固定资产计提完折旧报废的账务处理
  • python lzo
  • Yii 连接、修改 MySQL 数据库及phpunit 测试连接
  • 明细账示例
  • sql主键是什么意思
  • 什么情况下需要做心脏造影
  • 企业购进材料取得增值税专用发票
  • 税务处理决定书撤销情形
  • 金税四期的主要功能
  • 税控系统专用设备包括税控收款机吗
  • 发生坏账时的分录
  • 工资可以当月发放当月计提吗
  • 金蝶旗舰版如何备份账套
  • 一般纳税人混凝土税负率
  • 补交增值税如何转管理费用
  • 原始凭证留存几年
  • 发票过账是什么意思
  • 商业企业采购商品会计分录
  • MySQL中truncate误操作后的数据恢复案例
  • sqlserver数据库怎么导出
  • win7系统中怎么卸载安装的软件
  • openssl/sha.h
  • centos7安装教程详解
  • 注册表 windows
  • 安卓开源好处
  • 开源 android 播放器
  • unity example project
  • android studio 安装好后怎么在桌面找到
  • node express 路由
  • 新疆喀什泽普县海拔高度是多少米
  • 买新房子需要交契税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号