位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享详解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正则表达式验证用户名)

  • 化妆品销售公司简介
  • 印花税和契税是什么意思?什么时候交?
  • 综合税率的计算方法是什么
  • 实际已缴纳所得税额不自动带出
  • 三方协议缴款账户状态错
  • 融资租赁租入固定资产折旧可以税前扣除吗
  • 土地增值税清算管理规程
  • 合同违约金账务处理
  • 自产产品用于捐赠的会计处理
  • 公司注册前发生费用没有发票怎么办
  • 企业缴纳房产税的依据
  • 劳务派遣公司发放工资是按照劳务报酬嘛
  • 海关特许权使用费 公告
  • 健身行业的税务政策
  • 纳税人提供不动产经营租赁增值税征收管理
  • 票据质押放流贷的风险归谁
  • 发票上不小心印上作废两个字怎么办
  • 如何生成公司开票信息二维码
  • 库存商品在贷方怎么调回借方
  • 发行股票的承销商佣金分录
  • 工伤赔偿工伤保险超出部分
  • 打开我的电脑出现找不到应用程序
  • 速动比率的合理范围
  • 进项发票没认证可以开红字申请单吗
  • 新成立公司开票能开多少个点的发票
  • phpwind教程
  • 押金未退会计分录
  • 报销差旅费会计科目怎么写
  • 付不出去的应付账款如何写说明书
  • msqry32.exe进程是什么文件 作用是什么 msqry32进程查询
  • tim模块
  • 存货跌价准备的分录
  • 跨地区经营增值税预缴
  • 广告费与业务宣传费不超过当年销售收入
  • 微信小程序入门指南
  • 自动驾驶数据集 mev
  • 验证码php代码
  • 怎么修改手机的地理位置
  • html5+css3web前端设计基础教程
  • 食堂洗碗机操作规程
  • 现金折扣什么时候冲减收入
  • 帝国cms好用吗
  • page_sql
  • 非正常损失的增值税进项税额转出
  • 资产无偿划转会计处理
  • mysql 锁详解
  • 固定资产提取折旧最新规定
  • 固定资产本期增加怎么算
  • 残保金少申报了怎么办
  • 业务招待费的企业所得税扣除标准
  • 公司投资者如何避免风险
  • 物业公司转售电费增值税
  • 制造费用折旧费编码
  • 生育保险基金的筹集原则是
  • 公司借调人员工资账务处理
  • 没有发票的福利费支出可以税前扣除吗
  • 可以抵扣的增值税进项税额
  • 年终奖通常怎么计算
  • 施工企业周转材料会计科目的设置
  • delete from 表名 where
  • ubuntu 手动安装
  • 计算机上没有运行windows无线服务
  • windows7的插孔设置在哪
  • windows server 2008 r2激活密钥
  • 主板升级bios失败怎么办
  • windows中的帐户类别administrator为
  • win7系统对拷的方法
  • win7系统如何删除隐藏文件
  • hpl是什么文件
  • win10正式版激活码
  • centos的安装步骤
  • pqv2isvc.exe - pqv2isvc是什么进程 有什么作用
  • 如何关闭win10自动升级win11
  • 隐藏控制台窗口
  • net命令用法
  • java获取两个日期间的所有月份
  • ui课程入门
  • xmpp client
  • 税款怎么查询
  • 个人所得税代扣代缴手续费退库申请
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设