AJax技术

php 伪异步执行实现方法

字号+ 作者:H5之家 来源:H5之家 2017-10-16 14:30 我要评论( )

本文介绍下,php异步执行的变通实现方法,也即php伪异步执行的实现方法,有需要的朋友参考下。

需求描述:
客户端访问php文件,php需要做某个耗时的操作。
例如:访问远程接口数据 而客户端不需耗时操作的结果只期望快速得到输出.
php本身是不支持异步操作的,可以用子进程的方式模拟异步操作执行,但实现起来比较复杂而且只支持linux平台。

本节分享一个简单的伪异步执行方案:
利用http的特性,强制输出 connection close的header,让浏览器认为服务端已经执行完毕,从而直接断开链接显示出结果。

例子,php异步执行实例代码。
 

复制代码 代码示例:

<?php
ignore_user_abort();  //保证客户端断开连接后程序依然正常执行
ob_start();  //开启输出缓冲  header可以在输出之后执行

header('Connection: close');  //输出header

echo('test');  //输出内容
$size = ob_get_length();
header("Content-Length: $size"); 
ob_end_flush(); //输出缓冲
flush(); //输出缓冲

foreach($i=0;$i<5;$i++)
file_get_contents("");//执行 耗时操作
?>

代码说明:
用循环抓取5次百度的首页来模拟耗时的操作。
执行之后,浏览器几乎瞬间显示出服务端的输出test。
而且不会显示页面一直在加载中的状态,也就是服务端先把输出结果返回给客户端,客户端不用再等待,循环5次,抓取脚本学堂首页的代码执行完才能看到结果。

以上通过一个变通的办法,实现了php代码的异步执行,确实不错,值得学习参考。

您可能感兴趣的文章:
php环境中url伪静态和Gzip同时开启相关问题与解决办法
jquery ajax属性async(同步异步)示例
使用php异常处理类Exception的例子
jquery中ajax函数执行顺序问题之如何设置同步
PHP5 的异常处理、错误的抛出及回调函数等
jquery的ajax简单结构示例代码
jQuery之ajax删除详解
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Jquery中ajax方法data参数的用法小结
php中的异常处理、错误的抛出及错误回调函数

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • PHP+Ajax Web 2.0编程技术与项目开发大全(含光盘1张)

    PHP+Ajax Web 2.0编程技术与项目开发大全(含光盘1张)

    2017-10-15 18:47

  • 2017年最新PHP全套视频-学习路线图

    2017年最新PHP全套视频-学习路线图

    2017-10-15 12:06

  • PHP使用token防止表单重复提交的方法_php技巧

    PHP使用token防止表单重复提交的方法_php技巧

    2017-10-10 15:21

  • 使用PHP中的ajax做登录页面、验证用户名是否可用、动态调用数据

    使用PHP中的ajax做登录页面、验证用户名是否可用、动态调用数据

    2017-10-09 08:00

网友点评
C