首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

ajax长轮询的兑现

2012-11-25 
ajax长轮询的实现?今天一同学请帮忙,要求实现用户上传文件后,交给服务端调用shell处理,处理分好几步,而且

ajax长轮询的实现

?今天一同学请帮忙,要求实现用户上传文件后,交给服务端调用shell处理,处理分好几步,而且处理时间可能长达数分钟,并要将每一部处理反馈给用户,让用户知道当前进行到哪一步。

?

?

一种的方法是每隔很短的时间发送一个ajax请求,检测运算到哪一步,通过检测ajax返回来处理。

这样的好处是实现起来简单,但对客户端和服务端压力都比较大。

?

?

还有一种方法,就是发送一个ajax请求,一直处于等待状态,直到服务端有数据时再返回,这样可以显著降低请求数目,减少服务端压力。

?

?

js:

?

if(!empty($_POST['step'])){$step = $_POST['step'];set_time_limit(0);  //这里是关键,设置链接永不过时if($step == 1){           //每一步由不同的shell处理,php会等shell执行完毕再继续执行$sh = "./test1.sh";} else if($step == 2){$sh = "./test2.sh";} else if($step == 3){$sh = "./test3.sh";}$ret = exec($sh,$results,$rc);if($rc == 0){echo "{step:".$step."}";} else {echo "error";}}
?

?

?

热点排行