位置: 编程技术 - 正文

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

  • 坏账准备转回的条件
  • 小规模差额征税会计分录实例
  • 航空运单能当发票使用吗
  • 工资结算汇总表会计科目
  • 代员工缴纳的个税放什么科目
  • 委托加工的账务处理
  • 冲减应收帐款分录
  • 员工年终福利发什么
  • 股权转让如何避免缴纳个税
  • 违约金收入计入应纳税所得额吗
  • 购买户外用品的app
  • 正确解读《非居民金融账户涉税信息尽职调查管理办法》
  • 收到运费发票是进项还是销项
  • 公户以借款形式打款给个人,对个人有影响么?
  • 食堂固定资产管理制度
  • 技术合同 免税
  • 应付职工薪酬明细表怎么填写
  • 税务专用发票
  • 工程结算收入的会计分录
  • 穿越火线刷枪视频教程
  • 快递公司账务处理流程及方法
  • 增值税怎么填表
  • 小规模纳税人增值税税收优惠政策
  • cpu哪个型号性价比最高
  • 创建自定义对象主要哪几种方法,并写出基本语法结构?
  • 收到专利补贴的分录
  • 个人所得税必须交吗
  • Symfony学习十分钟入门经典教程
  • thinkphp3.1.3手册
  • 年金单位缴费计入个人账户(税前)
  • 青龙面板搭建教程
  • 表单校验html5
  • 政府会计主体资产有哪些
  • 利润分配的会计分录怎么写
  • php文件包含的4种方式
  • 老生常谈造句
  • 客户多付的货款叫什么
  • yolov5目标检测代码
  • ssd训练自己的数据集pytorch
  • HTTP加密/HTTPS工作过程
  • ntpd命令详解
  • 资产负债表没有期末数
  • 物业管理可以开保洁发票吗
  • 自产自销免税农产品需要缴纳印花税吗
  • 非限定性净资产包括哪些科目
  • 银行手续费必须有发票才能入账吗
  • mongo创建db
  • python logger
  • 企业年度关联业务往来报告表必须填吗
  • 任意盈余公积金怎么计算
  • 一步一步的简单
  • 除湿机计入固定费用吗
  • 电子发票是否作废怎么查
  • 收到政府补贴如何入账
  • 营改增后存在的问题
  • 应发工资计入什么科目
  • 接受捐赠的固定资产计入什么科目
  • 企业所得税汇算清缴时间
  • 医院的自助缴费机怎么开具发票
  • 委托加工产品送货合同
  • 期间费用明细表在哪里找
  • mysql免安装版怎么启动
  • 电脑出现蓝屏后黑屏怎么办
  • 主板bios恢复出厂默认设置方法
  • Win10更新后浏览器不能联网怎么办
  • cmd attribute
  • Vuforia 4.0 beta——Object Recognition (二)
  • vue.js打包部署
  • js原生dialog
  • ubuntu20.04怎么安装
  • Python 安装模块
  • jquery轮播代码
  • android自学
  • 国家税务局开票软件下载
  • 新收入准则租赁业务
  • 呼和浩特市契税2021年新规
  • 上海税务培训中心
  • 进项税留抵怎么消化掉
  • 长春国税局科员工资是多少
  • 新疆塔城靠近俄罗斯吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设