php中如何异步调用方法

  介绍

这篇文章主要介绍php中如何异步调用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

php异步调用的方法:1,在返回给客户端HTML的代码中,嵌入AJAX调用,或者嵌入一个img标签,src指向要执行的耗时脚本;2、使用popen函数打开一个指向进程的管道,该进程由派生给定的命令命令执行而产生。

 php中如何异步调用方法

<强> 1。最简单的办法,就是在返回给客户端HTML的代码中,嵌入AJAX调用强,或者,嵌入一个img标签,src指向要执行的耗时脚本。

这种方法最简单,也最快。服务器端不用做任何的调用。

但是缺点是,一般来说AJAX都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。

而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在负载。

当然,还可以使用其他的类似原理的方法,比如脚本标签等等。

<强> 2。popen()

资源popen(字符串命令字符串模式);

//打开一个指向进程的管道,该进程由派生给定的命令命令执行而产生。打开一个指向进程的管道,该进程由派生给定的命令命令执行而产生。

所以可以通过调用它,但忽略它的输出。

pclose (popen (“/home/xinchen/后端。php和“& # 39;" # 39;));

这个方法避免了第一个方法的缺点,并且也很快。但是问题是,这种方法不能通过HTTP协议请求另外的一个网络服务,只能执行本地的脚本文件,并且只能单向打开,无法穿大量参数给被调用脚本。

并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。

<强> 3。使用旋度

这个方法,设置<代码> CUROPT_TIMEOUT> $ 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中如何异步调用方法