位置: 编程技术 - 正文

详解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正则表达式验证用户名)

  • 递延所得税负债是什么科目
  • 房产税的纳税义务人是房屋的产权所有人
  • 什么是工程销项表
  • 税务师考试要求核酸检测
  • 增值税留抵税额是什么意思
  • 利润总额×12%
  • 收入比开票多如何处理好
  • 已经抵扣的发票还能红冲吗?怎么操作
  • 资产评估增值的会计科目
  • 暂估成本结转后怎么冲回
  • 简易征收进项税额转出什么意思
  • 金税盘抵减增值税的账务处理
  • 工资代扣款项是什么意思
  • 期末未缴税额为什么会有数据
  • 城建税免征怎么记账
  • 以前年度亏损本季度盈利所得税
  • 发票添加商品编码怎么填
  • 营改增后如何确认老项目营改增前收入
  • 办公用品包括啥
  • 直接成本和间接成本差异
  • 个税跨年的可以补报吗
  • 单位不发工资怎么解决要什么证据
  • 公司收到个人借款的现金流量
  • 工会财务任务是什么
  • 工资必须通过银行代发吗
  • 所得税不退税怎么写情况说明
  • 交通票报销有哪些
  • 什么叫固定资产的确认
  • 普通增值税发票跨越可以作废吗
  • 促销费影响主营利润吗
  • 票据权利消灭是啥意思
  • win10系统下怎么安装Java JDK及配置环境变量
  • linux太卡顿
  • php str split
  • 在缴纳企业所得税的情形
  • 长期股权投资顺逆流交易的损益调整
  • 网页单行文本框
  • php读取文件内容
  • 个体工商户缴税吗?
  • 企业纳税人应缴的税额
  • 差旅费过路费会计分录
  • 交易所转交易所手续费是多少
  • 差旅费包括哪些费用
  • 建筑企业预缴的增值税怎么抵扣
  • 其他业务收入如何核算
  • 融资租赁算非标业务吗
  • 帮客户代付保证金合法吗
  • 印花税计入什么会计分录
  • 应发工资计入什么科目
  • 金税盘每年服务费可以抵扣吗
  • 所得税汇算清缴报告在哪查
  • 一次性收入怎么计税
  • 应收账款折率
  • sqlserver如何查看操作日志
  • sqlserver数据库和mysql区别
  • win7的屏幕键盘
  • win10预览版和正式版
  • macbookair控制面板
  • Win10预览版拆弹
  • javascript 数组操作
  • opengl渲染流程图
  • javascript ie
  • android adbd
  • 如何得到pull解析器?
  • kmp算法代码完整实现
  • 安卓手机本地
  • 文件夹怎么变成
  • 一个页面
  • 重写SimpleAdapter的getView以实现按钮点击响应
  • javascript有几种类型
  • zabbix 微信
  • 广西增值税发票查询平台
  • 税务系统更新不能开发票
  • 建筑业小规模纳税人工程结算增值税
  • 济南税务局电话是多少
  • 税控盘怎么分发
  • 车没交车船税上路什么后果
  • 江苏税务缴费小程序
  • pppoe账号密码改了连不上网
  • 广西国税电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设