PHP ajax 异步执行不等待执行结果的处理方法

Gaia ·
更新时间:2024-11-14
· 605 次阅读

短地址生成应用中,要根据长地址生成网页快照,这个生成时间非瞬发,不可预估。

所以前台方面采用的方案一般为先展示生成的短地址,再定期AJAX轮查网页快照是否生成完毕。

So,PHP代码这里做了如下处理:

代码如下:
// 这边服务器采用的是phantomjs 来生成网页快照
$cd        = '/home/emp/phpinstall/phantomjs-1.5.0/bin/phantomjs /home/emp/phpinstall/phantomjs/snap.js "'.$url.'" /home/emp/public_html_demo/cms/'.$thumb.' & ';
try{
    @pclose(popen($cd,"r"));
}catch(Exception $e){}

前台Js的ajax脚本:
代码如下:
_wt = window.setInterval("sys.ajax('?m=shorturl&c=index&a=check_snap','',callback.checkSnap);",200);

回调函数checkSnap等待PHP的check_snap检测网页快照 文件是否生成完毕。

收到生成完毕的信息后,清楚_wt这个定时器。
代码如下:
clearTimeout(_wt);
这样,PHP和前台AJAX这对JFYF就合作得很欢快了~

您可能感兴趣的文章:PHP框架Laravel中实现supervisor执行异步进程的方法4种PHP异步执行的常用方式PHP 异步执行方法,模拟多线程的应用分析基于PHP异步执行的常用方式详解深入PHP异步执行的详解实现PHP多线程异步请求的3种方法PHP curl 抓取AJAX异步内容示例php异步多线程swoole用法实例利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法PHP的Laravel框架中使用消息队列queue及异步队列的方法PHP编程实现脚本异步执行的方法



异步执行 异步 PHP AJAX 方法

需要 登录 后方可回复, 如果你还没有账号请 注册新账号