当前位置: 编程技术>php
php 伪异步执行实现方法
来源: 互联网 发布时间:2014-10-09
本文导语: 需求描述: 客户端访问php文件,php需要做某个耗时的操作。 例如:访问远程接口数据 而客户端不需耗时操作的结果只期望快速得到输出. php本身是不支持异步操作的,可以用子进程的方式模拟异步操作执行,但实现起来比较...
需求描述:
客户端访问php文件,php需要做某个耗时的操作。
例如:访问远程接口数据 而客户端不需耗时操作的结果只期望快速得到输出.
php本身是不支持异步操作的,可以用子进程的方式模拟异步操作执行,但实现起来比较复杂而且只支持linux平台。
本节分享一个简单的伪异步执行方案:
利用http的特性,强制输出 connection close的header,让浏览器认为服务端已经执行完毕,从而直接断开链接显示出结果。
例子,php异步执行实例代码。
代码示例:
代码说明:
用循环抓取5次百度的首页来模拟耗时的操作。
执行之后,浏览器几乎瞬间显示出服务端的输出test。
而且不会显示页面一直在加载中的状态,也就是服务端先把输出结果返回给客户端,客户端不用再等待,循环5次,抓取脚本学堂首页的代码执行完才能看到结果。
以上通过一个变通的办法,实现了php代码的异步执行,确实不错,值得学习参考。