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

yipeiwu_com5年前PHP代码库

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

所以前台方面采用的方案一般为先展示生成的短地址,再定期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全功能无变形图片裁剪操作类与用法示例

本文实例讲述了PHP全功能无变形图片裁剪操作类与用法。分享给大家供大家参考,具体如下: 如果需要图片裁剪,或生成缩略图,这个基本上没有问题,全部需要的功能都在里面,全部都是无变形的。 这...

php下实现折线图效果的代码

<?php   Class ImageReport{  var $X;//图片大小X轴  var $Y;//图...

PHP PDO数据库操作预处理与注意事项

PDO(PHP Database Object)扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询...

php输出全球各个时区列表的方法

本文实例讲述了php输出全球各个时区列表的方法。分享给大家供大家参考。具体实现方法如下: <?php $timezones = array ( '(GMT-12:00...

PHP中is_file不能替代file_exists的理由

我们可以使用下面的代码测试一下:复制代码 代码如下:<?php        $filename = 'test.txt...