位置: 编程技术 - 正文

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

  • 超过两年记入错误的主营业务成本怎么调账
  • 其他应付款贷方负数怎么调整
  • 汇算清缴从业人员平均值
  • 编制初始计量有什么要求
  • 月末将应交未交增值税转入未交增值税
  • 审核通过的红字发票信息表可以撤销吗
  • 财务预算是做什么的
  • 没有ca证书怎么连接wifi加密设备
  • 买赠销售方式的税务筹划
  • 现金比率计算公式含义
  • 简单征收的进项税额怎么调出来?
  • 政府奖励企业款银行未收到会计分录
  • 应收账款贷方余额怎么处理
  • 电费发票勾选是啥意思
  • 增值税专用发票验票
  • 报税申报不了
  • 股东个人所得税怎么申报
  • 非税收入的发票能抵扣吗
  • 代开专票交的城建税怎么申报附加税
  • 未摊销金额怎么算
  • 总工会拨付工会经费
  • win10指纹传感器在哪里
  • linux如何查找命令
  • 全民游戏盒子怎么卸载
  • 个人所得税到年底能不能退回来
  • 选择简易征收
  • 局域网解决方案
  • 在建工程预付款可以计入费用么
  • 苹果15手机价格和图片颜色
  • php零基础入门教程
  • 收据中代收款凭证
  • php框架零基础入门
  • php 字符串处理函数
  • vue使用教程
  • 小规模纳税人季报需要报什么
  • vue viewui
  • 哪些情形视同从境外取得收入:
  • 织梦参数配置设置
  • 织梦常用调用标签
  • 开票额度超了怎么办
  • 进项税额转出冲减进项税额吗
  • 金税四期什么时候全国运行
  • 建筑业挂靠企业所得税如何收取?
  • 营改增后存在的问题
  • 垃圾处理费如何做账
  • 成本法下被投资单位其他综合收益变动
  • 个体户能开增票吗?
  • 政府补助都有哪些类型
  • 应付暂估余额很大怎么办
  • 免抵税额和免抵退税额一样吗
  • 行政单位固定资产标准
  • mysql查询结果是什么类型
  • sql server常用
  • MySQL使用select语句查询指定表中指定列(字段)的数据
  • win8.1无法连接无线网
  • 如何用命令关机
  • centos环境搭建
  • xp关闭防火墙命令
  • win10系统光盘制作
  • macbook怎么把通知关掉
  • u盘怎么安装win7镜像文件
  • win8使用体验
  • win7系统无法安装
  • linux的复制
  • cmd命令进行ftp下载文件夹
  • Unity3D游戏开发基础
  • 程序员应该学什么
  • python利用for循环求1到100的奇数之和
  • service segment
  • javascript怎么弄
  • echarts图表
  • 半透明图层怎么制作
  • 西安国家税务局丁雁现任命职务
  • 重庆市电子税务局官网登录入口注册
  • 湖北省纳税大户
  • 财政局,人社局和法院哪个好
  • 陕西省税务电话是多少
  • 贵州省税务局193项业务
  • 湖南自然人电子税务局官网
  • 依法征拆
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设