位置: 编程技术 - 正文

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

  • 未按期纳税申报怎么处理
  • 用于维修安装服装的材料
  • 汇算清缴纳税调整项目
  • 房地产公司环境
  • 取得出口退税款算什么收入
  • 重新建账要以前的期初余额吗
  • 发票认证了还能退回吗
  • 估价入账是什么意思
  • 过了认证期的发票怎么办
  • 个体工商户如何给员工交社保
  • 汇算清缴退税现金流量表
  • 劳务派遣税收政策文件
  • 出口退税远程申报
  • 股权激励技术入股的最新政策
  • 资本结构理论有哪些类型
  • 资本公积转增资本时应注意的问题主要包括哪些?
  • 保险公司的税收是多少
  • 1697509422
  • 客户汇公司账户怎么汇
  • 库存商品成本变动率
  • mac big sur 新功能
  • 企业奠基费用如何入账
  • 要看网怎么找
  • 固定资产增值税税率
  • 房屋建筑物改扩建税务处理
  • 银行电子承兑到期了怎么兑现操作
  • 银行代发工资会计科目怎么写
  • 工业企业在进行材料采购
  • 如何导入并使用数据库
  • 解决安装后软件icon一圈白边问题
  • three.js入门指南
  • 建筑物附属设备包括哪些
  • vue-cli-service权限不够
  • php如何继承多个类
  • php导出带样式的数据库
  • 公司迁移到外省 税务局需要注销吗
  • 法人借钱给公司,公司可以直接转给法人吗
  • 库存商品盘点表
  • 出售在建工程账务处理
  • 企业内部研究开发项目开发阶段的支出
  • 销售包装什么意思
  • 第9章 内存模型分析
  • 帝国cms使用redis
  • 购房补贴退契税3个月没到账
  • 固定资产有内容限制吗
  • 汇总记账凭证账务处理
  • 收到厂家返利如何计算成本
  • 报废产品账务的处理方法
  • 电子承兑背书了能撤回吗
  • 企业租车接送员工上下班
  • 寄售商店代销寄售物品的税率
  • 住宿费用专票可以抵扣吗
  • 无形资产当月减少当月计提吗
  • 个体生产经营所得税
  • 原材料的采购成本怎么计算
  • 海关进口增值税专用缴款书在哪里打印
  • 劳务费是否属于工资
  • 工程材料增值税抵扣比例
  • 这个月要交增值税怎么做账务处理
  • 企业职工福利费可用于职工的医疗卫生费用
  • 融资手续费计入长期待摊
  • sql server错误和使用情况报告
  • mysqldump命令在哪里执行
  • xp系统的输入法在哪里设置
  • linux 命令帮助
  • ubuntu安装lnmp环境
  • win10怎么设置窗口颜色和外观
  • 如何将win10系统从c盘迁移到d盘
  • rundll32.exe是什么程序
  • 六个自由
  • 深入理解新发展理念,推进供给侧结构性改革 心得体会
  • 用jquery制作网页
  • 被调用的对象已与其客户端断开连接怎么办
  • jquery(document).ready
  • windows and android
  • java script教程
  • 跨浏览器插件
  • tiny rails汉化
  • 广东省电子学校
  • 苏州税务系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设