位置: 编程技术 - 正文

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

  • 小规模纳税人税收优惠2023
  • 哪些情形免征契税
  • 增值税不交什么后果
  • 增值税发票管理办法及细则
  • 送货运杂费属于什么费用
  • 购入固定资产入账
  • 钱已付票未收到分录怎么做
  • 调整上月的生产成本
  • 增值税专用发票可以开电子发票吗
  • 转业士官自谋职业
  • 坐收坐支在会计上如何反映
  • 员工冲借款收据怎么开?
  • 已确认并转销的应收账款会计分录
  • 增值税发票本月没用完可以下月用吗
  • 小规模纳税人是简易计税吗
  • 造价咨询公司在哪里备案
  • 继承房产出售时交个人所得税税率是多少
  • 为什么销售人员佣金计入合同取得成本
  • 房地产开发企业预收款预缴增值税
  • 土地+n
  • 维修费属于哪个类别
  • 未抵扣进项税会计分录
  • 哪些研发费用可以资本化
  • 银行没有流水怎么开证明
  • 代扣代缴增值税附加税减免政策
  • 行政单位无形资产入账标准
  • 收入未实现成本怎么进
  • 派发现金红利怎么知道有没有
  • el-cascader动态加载多级
  • 一般纳税人销售自己使用过的汽车
  • win10应用商店下载的软件在哪
  • win10怎么删除电脑开机密码设置
  • PHP:finfo_open()的用法_fileinfo函数
  • 农产品个体销售税率多少
  • 最贵的十张照片
  • 村集体经济组织架构
  • 六自由度机器人简图
  • 开具信用证费用由谁承担
  • php 微信公众号自定义菜单
  • 充电桩折旧年限是多少年
  • 坏账的确认条件税务会查吗
  • 工业企业成本核算方法
  • 免收印花税
  • 国家税务局监制的票还能用吗
  • 帝国cms使用手册
  • 工商年报股东实缴出资金额能写0吗
  • 抵扣税条件
  • 企业所得税免税项目
  • 增值税加计扣除最新政策2023
  • 收到退回留抵退税
  • 暂估入库结转成本后如何冲红
  • 珠宝行业的会计
  • 失控发票多久能查出
  • 领备用金时会计怎么做分录
  • 发票冲销后还能用吗
  • 购买发票打印机如何账务处理?
  • 其他应付款通俗
  • 股东分红算不算成本费用
  • 发票什么时间认证
  • 业务招待费可以开专票抵扣吗
  • 长期股权投资属于什么会计要素
  • sql server in()
  • 数据库表的创建心得体会
  • 查找共享打印机所在的电脑
  • 微软推出新系统发布会
  • 轻松备份怎么用
  • ubuntu常用操作
  • 盗版win10可以用win10商店吗
  • win10mobile更新出错
  • cocos2d官网
  • python基本用法
  • python三角形角度
  • linux shell命令大全
  • 使用JQuery中的trim()方法去掉前后空格
  • 'd:skin' 开头的无效内容。此处不应含有子元素。
  • 深入浅出jquery
  • 发票查验结果怎么保存
  • 社保缴费电子回单在哪里截图
  • 芜湖买房退契税在哪里退
  • 云南省代理记账管理实施办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设