位置: 编程技术 - 正文

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

  • 职工福利费的税额
  • 年度应纳税所得额计算公式
  • 运动手环的税收分类编码是
  • 增值税销项税额账务处理
  • 实收资本多长时间缴纳完?
  • 增值税技术维护费每年都可以抵减吗?
  • 进口关税增值税税率
  • 转入公司对公账户怎么办
  • 企业所得税收入是什么意思
  • 什么发票可以抵税
  • 增值税专用发票和普通发票的区别
  • 个体工商户个人经营所得税优惠政策
  • 小规模纳税人开专票
  • 营改增后固定资产入账
  • 营业成本收入比
  • 商贸公司购买货物会计分录
  • 开的技术服务费可以做研发支出吗?
  • 出口货物过了退税怎么办
  • 销售折扣在备注栏注明的可以扣除吗
  • 清算资本公积中的股本溢价应该怎么处理
  • 企业社会贡献总结怎么写
  • 新成立的有限公司
  • 建安企业收取管理费虚开怎么处理
  • 注册表怎么启动
  • 怎么查开出去的发票原票
  • 旅游服务业账务处理办法
  • php面向对象是什么意思
  • 电脑开机显示屏显示无信号黑屏怎么办
  • 最大交易笔数什么意思
  • 材料报废 开什么发票
  • php排行
  • 公立医院增值税抵扣
  • 关于laravel应用中的各个目录的作用,说法错误的是
  • php常用方法
  • php中自定义常量的函数是
  • uniapp中使用amap-vue,设置安全密钥
  • vue.js前端
  • php_curl.dll
  • powercfg off
  • 公司注销清算的会计分录
  • jetbrainsnews
  • 企业所得税怎么征收几个点
  • 出差补贴要扣税吗
  • 公司给买员工保险
  • 双重数组
  • python动态数据类型
  • 利息收入计入借方
  • 什么是,利息
  • 政府会计资产的概念
  • 企业所得税法开办费
  • 普通发票可以抵扣吗
  • 车辆购置税如何账务处理
  • 报销单填写发票第几页交给财务
  • 买别人的银行卡是啥罪
  • mysql数据库遇到的故障及分析
  • 使用win10
  • windows vista界面
  • win8wifi受限
  • zhudongfangyu.exe是什么进程,可以删除吗
  • ahqtb.exe是啥进程 ahqtb进程信息查询
  • win7系统不能用了?
  • centos支持中文
  • linux文件复制到windows
  • rhel6.5安装
  • win8图标大小怎么调
  • javascript中的数字型可以用来保存整数或浮点数(小数)
  • 代码的历史
  • python append 浅拷贝
  • base adk
  • 全面解析少女时代关系
  • android studio 运行配置
  • 增值税发票的发票号码和发票代码
  • 挂车买保险是怎么买的
  • 赣州市民中心上班时间电话号码
  • 车险包括车船费吗
  • 税务局宣传报道
  • 从哪里可以免费听歌
  • 残疾人的房产可以买卖吗
  • 广东省东莞市电子税务局官网
  • 税务管理工作检讨书范文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设