当前位置:  编程技术>移动开发

php 异步调用方法实现示例

    来源: 互联网  发布时间:2014-10-22

    本文导语:  php 异步调用方法 客户端与服务器端是通过HTTP协议进行连接通讯,客户端发起请求,服务器端接收到请求后执行处理,并返回处理结果。 有时服务器需要执行很耗时的操作,这个操作的结果并不需要返回给客户端。但因为php...

php 异步调用方法

客户端与服务器端是通过HTTP协议进行连接通讯,客户端发起请求,服务器端接收到请求后执行处理,并返回处理结果。

有时服务器需要执行很耗时的操作,这个操作的结果并不需要返回给客户端。但因为php是同步执行的,所以客户端需要等待服务处理完才可以进行下一步。


因此对于耗时的操作适合异步执行,服务器接收到请求后,处理完客户端需要的数据就返回,再异步在服务器执行耗时的操作。


1.使用Ajax 与 img 标记

原理,服务器返回的html中插入Ajax 代码或 img 标记,img的src为需要执行的程序。

优点:实现简单,服务端无需执行任何调用

缺点:在执行期间,浏览器会一直处于loading状态,因此这种方法并不算真正的异步调用。
代码如下:

$.get("doRequest.php", { name: "fdipzone"} );

代码如下:



2.使用popen

使用popen执行命令,语法:
代码如下:

// popen — 打开进程文件指针
resource popen ( string $command , string $mode )

代码如下:

pclose(popen('php /home/fdipzone/doRequest.php &', 'r'));

优点:执行速度快

缺点:1.只能在本机执行

2.不能传递大量参数

3.访问量高时会创建很多进程。

3.使用curl

设置curl的超时时间 CURLOPT_TIMEOUT 为1 (最小为1),因此客户端需要等待1秒
代码如下:



4.使用fsockopen

fsockopen是最好的,缺点是需要自己拼接header部分。
代码如下:



注意:当执行过程中,客户端连接断开或连接超时,都会有可能造成执行不完整,因此需要加上
代码如下:

ignore_user_abort(true); // 忽略客户端断开
set_time_limit(0); // 设置执行不超时

    
 
 

您可能感兴趣的文章:

  • PHP异步执行技巧分享
  • php 异步请求文件实现多线程的代码
  • PHP异步执行模拟多线程的方法
  • PHP异步调用socket小例子
  • php 伪异步执行实现方法
  • PHP 异步框架 phpdaemon
  • PHP服务器端异步执行方法解析
  • PHP异步调用socket与php异步执行实例
  • PHP多线程异步请求的3种实现方法
  • 实现PHP多线程异步请求的3种方法
  • PHP的异步并行C扩展 swoole-server
  • PHP异步执行常用方式举例
  • PHP异步调用实现方式详解
  • php+js实现异步图片上传实例分享
  • PHP异步执行实例解析
  • php使用fscok实现异步调用
  • php+ajax图片文件异步上传示例代码
  • php通过socket_bind()设置IP地址代码示例
  • php循环创建目录示例分享(php创建多级目录)
  • PHP获取php,mysql,apche的版本信息示例代码
  • php定义数组和使用示例(php数组的定义方法)
  • php输出奇数偶数示例
  • php递归示例 php递归函数代码
  • php生成数组的使用示例 php全组合算法
  • php分割数组示例
  • php数组随机排序示例
  • PHP 强制下载文件示例代码
  • php动态生成函数示例
  • php输入流php://input使用示例(php发送图片流到服务器)
  • php循环创建多级目录示例
  • php二维数组转换为字符串示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 救命.PHP没有办法调用MYSQL!!!!
  • php 使用system() 调用c程序的问题
  • php调用c++的方法
  • PHP父类调用子类方法的例子
  • php中调用其他系统http接口的方法说明
  • PHP父类调用子类方法的代码例子
  • PHP Thrift Rpc 远程调用框架 workerman-thrift
  • php调用kill命令平滑重启nginx
  • php调用存储过程返回结果集的例子
  • PHP调用VC编写的COM组件实例
  • php中创建和调用webservice接口示例
  • php调用google接口生成二维码示例
  • php调用google接口生成二维码实例
  • php调用nginx的mod_zip模块打包ZIP文件
  • php通过字符串调用函数示例
  • php如何调用c#开发的dll类库?
  • PHP调用C#开发的dll类库方法
  • php根据ip调用新浪api获取城市名转拼音
  • php调用c接口无错版介绍
  • php数组传值调用与传址调用
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • PHP转换器 HipHop for PHP
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP 框架 Pop php
  • PHP去除html标签,php标记及css样式代码参考
  • PHP的JavaScript框架 PHP.JS
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • php服务器探针显示php服务器信息
  • php安装完成后如何添加mysql扩展


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3