这篇文章主要介绍php中如何异步调用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
php异步调用的方法:1,在返回给客户端HTML的代码中,嵌入AJAX调用,或者嵌入一个img标签,src指向要执行的耗时脚本;2、使用popen函数打开一个指向进程的管道,该进程由派生给定的命令命令执行而产生。
引用>
<强> 1。最简单的办法,就是在返回给客户端HTML的代码中,嵌入AJAX调用>强,或者,嵌入一个img标签,src指向要执行的耗时脚本。
这种方法最简单,也最快。服务器端不用做任何的调用。
但是缺点是,一般来说AJAX都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。
而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在负载。
当然,还可以使用其他的类似原理的方法,比如脚本标签等等。
<强> 2。popen() 强>
资源popen(字符串命令字符串模式);//打开一个指向进程的管道,该进程由派生给定的命令命令执行而产生。打开一个指向进程的管道,该进程由派生给定的命令命令执行而产生。
所以可以通过调用它,但忽略它的输出。
pclose (popen (“/home/xinchen/后端。php和“& # 39;" # 39;));这个方法避免了第一个方法的缺点,并且也很快。但是问题是,这种方法不能通过HTTP协议请求另外的一个网络服务,只能执行本地的脚本文件,并且只能单向打开,无法穿大量参数给被调用脚本。
并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。
<强> 3。使用旋度强>
这个方法,设置<代码> CUROPT_TIMEOUT> 代码为1(最小为1,郁闷)。也就是说,客户端至少必须等待1秒钟。
$ ch=curl_init (); $ curl_opt=阵列(CURLOPT_URL, & # 39; http://www.example.com/backend.php& # 39;, CURLOPT_RETURNTRANSFER 1 CURLOPT_TIMEOUT 1); curl_setopt_array (ch, curl_opt美元); curl_exec (ch); curl_close (ch);<强> 4。使用fsockopen 强>
这个方法应该是最完美的,但是缺点是,你需要自己拼出HTTP的头部分。
$ fp=fsockopen (“www.example.com", 80美元errno, errstr美元,30); 如果(! $ fp) { 回声“errstr美元(美元errno) & lt; br/祝辞\ n"; 其他}{ 从美元=癎ET/后端。php/HTTP/1.1 \ r \ n"; 美元。=爸鞒秩?www.example.com \ r \ n"; 美元。=傲?紧密\ r \ n \ r \ n"; 写入文件(fp,美元);/*忽略执行结果 而(! feof (fp)美元){ 回声fgets (fp 128美元); } */文件关闭(fp); }所以,总体来看,最好,用最简单的还是第一种方法。
最完美的应该是最后一种,但是比较复杂
以上是php中如何异步调用方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
php中如何异步调用方法