位置: 编程技术 - 正文

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

  • 培训个人所得税计算
  • 没有增值税专用发票开具证明
  • 医疗设备的折旧年限是多少年
  • 跨月作废增值税专用发票
  • 发票遗失如何报销
  • 一般纳税人符合条件
  • 政府机关车辆拍卖
  • 增值税附加税由买方承担如何计算
  • 委托开发费用免所得税和增值税
  • 建筑工程类发票
  • 补交本年增值税计提
  • 2018年收入等级划分图
  • 分配利润和分配股利
  • 电子发票对航天信息利空吗
  • 企业所得税减半征收计算公式
  • 营改增后建安企业账务处理
  • 应征增值税销售额和应税销售额
  • 资产损益表怎么看
  • 公司净资产怎么算的
  • 企业会计准则固定资产解释
  • 服装工业企业成立时间
  • Mac Chrome打开HTTPS证书错误问题解决方法
  • 王者荣耀怎么解除关系
  • xp系统电脑关机后又重启怎样处理
  • PHP:apache_response_headers()的用法_Apache函数
  • 即征即退,先征后退,先征后返的区别?
  • 会计账与银行账不符怎么调整
  • 行政事业单位会计职责
  • yii2-admin
  • php数组数据结构
  • 前端 教程
  • 未完待续百度百科
  • nodejs.org
  • 实现php搜索框代码
  • 隔两个月发票如何作废
  • 个人独资公司和合伙公司有什么区别
  • 坏账准备的会计分录怎么写
  • springcloud分布式微服务组件
  • mac的配置
  • python缩进有什么作用
  • 预付卡业务开票怎么开
  • 公司注销未分配利润如何处理
  • 金税四期有什么变化
  • 企业哪些进项税不能抵扣
  • 计提生产经营所得
  • 中级会计报名必须满4年吗
  • 资产减值准备怎么提
  • 辞退福利的会计分录怎么写
  • 在贫困户入股分红大会上的讲话
  • 补发工资如何计税计算
  • 固定资产机械设备有哪些
  • 外购货物会计分录
  • 如何在电子税务局变更办税人员
  • 什么是合理的工作安排
  • 施工企业主营业务收入二级科目有哪些
  • 年初要新建帐套吗
  • mac mysql密码忘记了怎么办
  • mysql5.7.22安装配置教程
  • win10系统怎么调
  • vista ui
  • 64位VMware虚拟机系统打不开怎么办?
  • system idle process是什么进程(CPU的空闲率)
  • windows开始搜索栏
  • ubuntu唤醒快捷键
  • centos6 grub
  • dmidecode 硬盘
  • shadowbar.exe - shadowbar是什么进程 有何作用
  • 防止非法使用计算机,可口令
  • win7空间不足c盘
  • Tutorial 3: First Triangle
  • 围绕摄像机旋转怎么设置
  • 超实用的八个开车技巧
  • jq监听input框value值
  • 手机运行node.js
  • 技术总结2000字
  • 上海网上纳税申报流程
  • 江苏省发展改革委
  • 地税完税证明怎么打印
  • 出口退税函调管理办法
  • 辽宁省地方税务局公告2014年第10号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设