用ajax发起一个后台处理程序,关掉页面程序也无法停止,什么原因?

chzbv1984 2013-05-16 06:36:46
使用ajax请求后台一个处理程序,这个程序随时间推进会生成一个文本文件。我提前终止了页面,也删除了文本文件,可过一会文本文件又产生了,说明程序还在运行,即使关闭浏览器也无法终止。没有设置ignore_user_abort(),只设置了set_time_limit(0),怎么回事?
...全文
1310 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qvbfndcwy 2013-05-20
  • 打赏
  • 举报
回复
请求已经提交过去了,就只能去服务器上,手动把该执行停止掉。
chzbv1984 2013-05-17
  • 打赏
  • 举报
回复
function get_feed(m_time){
if(!arguments[0]) m_time = "Not";
$.ajax({
url:'modules/douban/feedback.php',
data:{'action':'getfeed','m_time':m_time},
type:"POST",
dataType:'json',
//contentType: 'application/json; charset=utf-8',
cache:'false',
//async: true,
success:function(data){
m_time=data.m_time;//修改时间
if(typeof(data.process)=='undefined'){
var process_time='empty';
} else {
var last_time=m_time;
$.each(data.process,function(i,item){
var process_time=item.time;
var each_process=item.str;
if(each_process.length>0){
$("#processing").append(process_time+':'+each_process);
}
});
each_process=null;
}

if(process_time=='end_time'){
$.post('modules/douban/feedback.php',{action:'del_file'});
window.clearInterval(repeat);
} else {
repeat=window.setInterval(function(){get_feed(m_time);},30000);
}
},
complete:function(xhr,ts){//无论成功与否均会执行
//alert(ts);
},
error:function(xhr){alert('发生了错误!');}
});
}
,我用这个js用来请求后台处理进度(文本文件中),进度每次更新后会覆盖原来的内容,使用修改时间判断进度是否已更新。第一次(文本文件为空)执行没问题,当进度更新时,就出错,这个请求次数会以几何倍数增加,过不了多久浏览器就崩溃了。不知道哪里写错了?
haoheran 2013-05-17
  • 打赏
  • 举报
回复
异步? 不懂瞎说的
chzbv1984 2013-05-17
  • 打赏
  • 举报
回复
各位有何解决之道呢?如果不能终止执行,浏览器好像无法打开网站其他网页。只有等执行完毕后,才恢复正常。
anydy2008 2013-05-17
  • 打赏
  • 举报
回复
为什么要这样做呢 省流量?
xuzuning 2013-05-17
  • 打赏
  • 举报
回复
XMLHttpRequest.abort() 取消当前响应,关闭连接并且结束任何未决的网络活动。 这个方法把 XMLHttpRequest 对象重置为 readyState 为 0 的状态,并且取消所有未决的网络活动。例如,如果请求用了太长时间,而且响应不再必要的时候,可以调用这个方法。
chankite 2013-05-17
  • 打赏
  • 举报
回复
停止apache不就好了..
chzbv1984 2013-05-17
  • 打赏
  • 举报
回复
不顶不行啊,一会就沉下去了
staryjk 2013-05-16
  • 打赏
  • 举报
回复
我也碰到过这样的问题,关闭浏览器是不行的。。 当你提交一个请求以后,在服务器端收到便执行,执行期间貌似不会有结果返回,即使你关了浏览器,执行还是在进行中。
始终不够 2013-05-16
  • 打赏
  • 举报
回复
理论上,关闭浏览器的情况下,SOCKET链接也应该关闭了,服务器应该终止当前任务才对。同问。
一起混吧 2013-05-16
  • 打赏
  • 举报
回复
关闭浏览器不行?
chzbv1984 2013-05-16
  • 打赏
  • 举报
回复
额,发起的请求执行需要很长时间,想终止的话怎么办呢?
xuzuning 2013-05-16
  • 打赏
  • 举报
回复
当你终止了(关闭了浏览器)页面时,你能确认 XMLHttpRequest 进程也终止了吗? 至少我没有看到这方面的描述

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧