位置: 编程技术 - 正文

php实现异步数据调用的方法(php yield 异步)

编辑:rootadmin

推荐整理分享php实现异步数据调用的方法(php yield 异步),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php 异步函数,php异步处理数据,php异步请求方式,php异步执行代码,php异步请求方式,php 异步函数,php异步处理数据,php异步处理数据,内容如对您有帮助,希望把文章链接给更多的朋友!

php实现异步数据调用的方法(php yield 异步)

浏览器和服务器之间只有一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求返回相应的程序,不能保持持久连接。这样就出现了一个问题,一个客户端的相应服务端可能执行1秒也有可能执行1分钟,这样浏览器就会一直处于等待状态,如果程序执行缓慢,用户可能就没耐心关掉了浏览器。而有的时候我们不需要关心程序执行的结果,没有必要这样浪费时间和耐心等待,那我们就要想出办法让程序不收等待在后台静默执行。比如现在有一个场景,给个用户发送一封推荐邮件,用户输入或者导入邮件账号了提交服务器执行发送。

这段代码用户体验极差,也无法实际运用,首先发送这么多邮件会产生服务器运行超时,其实漫长的用户等待时间会让用户对系统产品怀疑和失去信心。但是用户不需要等待到封邮件都发送完毕了才提交发送成功,我们完全可以提交后台后直接给用户提示发送成功,然后让后台程序静默依次发送。这个时候我们就需要“异步执行”技术来执行代码,异步执行的特点是后台静默执行,用户无需等待代码的执行结果,使用异步执行的好处:

摆脱了应用程序对单个任务的依赖性 提高了程序的执行效率 提高了程序的扩展性 在一定场景提高了用户体验 因为PHP不支持多线程,使用异步调用的请求多个HTTP的方式达到了程序并行执行效果,但是注意的是请求的HTTP过多的话,会大大加大了系统的开销

PHP异步执行的常用方式1. 客户端页面采用AJAX技术请求服务器最简单的办法就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。这种方法最简单,也最快。服务器端不用做任何的调用。但是缺点是,一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。当然,还可以使用其他的类似原理的方法,比如script标签等等。2. popen()函数resource popen ( string command, string mode );打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。 所以可以通过调用它,但忽略它的输出。pclose(popen("/home/xinchen/backend.php &", 'r'));这个方法避免了第一个方法的缺点,并且也很快。但是问题是,这种方法不能通过HTTP协议请求另外的一个WebService,只能执行本地的脚本文件。并且只能单向打开,无法穿大量参数给被调用脚本。并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。3. CURL扩展CURL是一个强大的HTTP命令行工具,可以模拟POST/GET等HTTP请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

使用CURL需要设置CUROPT_TIMEOUT为1(最小为1,郁闷)。也就是说,客户端至少必须等待1秒钟。4. fscokopen()函数fsockopen是一个非常强大的函数,支持socket编程,可以使用fsockopen实现邮件发送等socket程序等等,使用fcockopen需要自己手动拼接出header部分。

标签: php yield 异步

本文链接地址:https://www.jiuchutong.com/biancheng/287447.html 转载请保留说明!

上一篇:PHP下SSL加密解密、验证、签名方法(很简单)(php ssl)

下一篇:4种PHP异步执行的常用方式(php异步处理方案)

  • 在电子税务局可以抄税吗
  • 人头税是什么税
  • 金税盘解锁后是否可以直接使用
  • 固定资产什么时候开始折旧
  • 员工离职社保未及时减员怎么处理
  • 代加工可靠吗
  • 抄税报税清卡怎么操作流程
  • 原始凭证包括会计档案吗
  • 企业捐赠不动产 会计分录
  • 企业所得税营业收入包括什么
  • 未分配利润转出会计分录
  • 购进免税农产品怎么计算进项税额
  • 已认证的发票如何导入
  • 企业非正常
  • 跨月负数发票会计分录
  • 发票联丢失用抵扣联做账可以吗
  • 补贴收入需要缴纳增值税吗为什么
  • 酒店怎么缴纳增值税费用
  • 个人承担的社保计入管理费用吗
  • 公司净资产怎么算的
  • 信汇凭证是转账凭证吗
  • 经营性现金净流量是什么意思
  • 内插法计算内部收益率公式
  • 政府补贴物业公司
  • 中药材收购需要纳税吗
  • 利润总额就是会计准则吗
  • 福利费开成增值税专用发票怎么办
  • 员工离职补偿金计算方法
  • 电脑维修会不会对电脑有影响
  • 代发工资有什么弊端
  • windows 11 正式版实际使用体验如何?
  • 商业企业低值易耗品科目核算的内容
  • hiddenalbum是什么文件夹
  • 资产减值损失如何录入
  • php-xml
  • 损益类账户的期末余额一般在借方还是贷方
  • 损益类科目借贷方向是什么
  • GPT-4 免费体验方法
  • 微信小程序商城源码php
  • 直连路由,静态路由
  • php自加
  • 工会经费的使用范围有哪些
  • 关于存货跌价准备
  • 印花税最新的征收方法
  • python怎么用
  • 销货方怎么开具购买方红冲的发票
  • 增值税专用发票怎么开
  • 什么情况下增值税进项税额转出
  • 固定资产累计折旧计算公式
  • 内含报酬率的意义
  • 向投资者支付的股息
  • 汽车运输企业交什么税
  • 企业重组后的债权怎么处理
  • 代开租金发票的税金怎样入账?
  • 本月没有认证的发票怎么做账
  • 平均净资产怎么算公式的
  • 返还垫付征地款
  • 用友软件中冲销凭证在哪
  • 农产品收购发票如何抵扣进项税
  • 账实不符怎么调账
  • 研发费用是管理费用的比例多少不正常
  • mysql5.5中文乱码解决
  • 卸载微信后重新登录微信怎么恢复之前的数据
  • windows无法删除软件怎么办
  • 把mac屏幕切换到桌面desktop
  • WIN10系统中WPS字体颜色浅
  • Win10 Build 14267截图欣赏:贴心功能大展示
  • Linux系统怎么安装gz包软件
  • linux k
  • Error: String types not allowed (at 'layout_gravity' with value 'bottom/center_horizontal').
  • cmd 远程登录
  • NGUI的depth和Z轴的关系
  • vue异步加载第三方库
  • nodejs实战
  • 禁用javascript后果
  • JavaScript数据类的特点
  • android中使用sharedprefence的步骤
  • 电子发票怎么汇总清卡
  • 暂估收入入账冲回如何会计分录
  • 郑州市地税局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设