位置: 编程技术 - 正文

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

  • 金税盘锁死日期是16号,16号能清卡吗
  • 企业进项不足的原因
  • 机动车销售发票怎么抵扣
  • 融资租赁的销项税额抵减
  • 房屋租赁合同印花税计税依据
  • 超市顾客返利如何做账务处理?
  • 应付账款多计怎么处理
  • 关于销售返利的说法正确的有
  • 以前年度亏损本季度盈利所得税
  • 跨省非独立核算分公司如何报税
  • 关联方转移定价注意问题
  • 管家婆怎样查历史记录
  • 学校购货合同
  • 仲裁委判决还能上诉吗
  • 股东借款利息计入利润表哪个科目
  • 出租柜台收取的服务费
  • 小规模收入未达50万
  • win10怎么防火墙白名单
  • 如何删除win11的入门
  • 用优启通怎么装系统
  • 存货监盘计划要求,在对存货盘点结果进行测试时
  • 交城建税的滞纳金是多少
  • php如何防止表单重复提交
  • 其他综合收益和其他收益的区别
  • 企业开发产品转为自用的,不得在税前扣除折旧费用
  • 企业注销后账上有结余怎么办
  • 财务部门产生的费用入什么?
  • 绩效奖个人所得怎么算
  • 城市维护建设税计入什么会计科目
  • 国家纪念品
  • 定额征收的个体户怎么做账
  • 解决方案啥意思
  • laravel实战教程
  • 注册资金不能到位怎么办
  • php常用语句
  • 定额材料损耗的计算公式
  • 一台电脑能不能接两个键盘
  • php怎么读取txt
  • 图像融合名词解释
  • 出售债券税费处理会计分录怎么写
  • 大前端技术架构
  • 超简单的土法自制水泥
  • 交易性金融资产入账价值怎么计算
  • 税票和发票的区别图片
  • 收到红字发票如何入账
  • 企业对外借款计入什么科目
  • 应收账款逾期什么意思
  • 商业会计和财务会计
  • 结转借贷方向如何计算
  • 汇率调节主要手段
  • 施工单位索赔应满足哪些条件?
  • 返聘退休人员工资标准
  • 查询存储过程中的文件
  • mysql数据库windows
  • 安装2个win10系统
  • window10系统邮件设置在哪里
  • 提高搜索引擎检索效果的方法
  • windows无法启动怎么解决
  • win10 记笔记
  • mfc100udll
  • mac os x 10.9.5
  • vmware 安装教程
  • linux忘了root密码
  • w10开发者模式
  • win7系统IE浏览器打开跳转到360浏览器,怎么阻止
  • win10 Mobile 10586.36预览版更新了哪些内容?
  • apache80端口被占用的解决方法
  • WIN10企业版安装NET3.5
  • cocos2d-x教程
  • javaweb技术栈是什么
  • perl处理特殊符号
  • 网关绑定失败怎么设置
  • 批处理系统定义
  • Android Fragment 体系 源码追踪笔记(4)
  • android回调函数
  • jquery获取指定元素
  • 重庆市劳动监察大队官网
  • 以房产作价投资增值税怎么算
  • 买车险代收车船税多少钱
  • 乡镇经管站是如何工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设