窗口关闭后仍在等待ajax查询
ajax queries still waiting after window close
我有一个网页,它有一个从php脚本获取数据的ajax调用。
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("GET", "submit.php?id=" + id, true);
ajaxRequest.send(null);
在submit.php中,我等待一个二进制文件完成并创建一个outfile。
while(1){
if(is_file($OUTFILEPATH)){
break;
}else{
sleep(60);
}
}
问题是,如果用户关闭浏览器窗口,ajax调用和相应的httpd不会中止。
如果用户多次刷新网页,我最终会有数百个httpd进程在等待创建同一个outfile。
Apache Server Status
115 requests currently being processed, 5 idle workers
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW_W____........
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
我相信答案是我需要将数据发送到客户端(客户端已关闭(,这导致php意识到连接已关闭,然后您必须退出脚本。
while(1){
if(is_file($OUTFILEPATH)){
break;
}else{
sleep(60);
print " ";
ob_flush();
flush();
if(connection_aborted() != 0{
exit;
}
}
}
相关文章:
- node.js请求数据事件未在CORS ajax调用中触发
- 在等待ajax请求时显示微调器并禁用页面
- 强制jQuery Deferred等待Ajax在“”中完成;那么“;处理程序
- 网页在等待 AJAX 响应时变为非活动状态
- RxJS 在处理下一个缓冲块之前等待 ajax respose
- jquery在等待ajax响应时加载gif
- JavaScript:如何在等待ajax响应时阻塞整个屏幕
- 如何让表单在提交之前等待ajax完成
- waitForKeyElements在某些浏览器上没有等待ajax加载的数据
- 如何在不等待ajax响应的情况下执行计数统计
- 如何判断一个可观察对象是否在“等待”另一个使用RxJS(例如,用于Ajax请求指示符)
- 如何使函数在返回true或false之前等待ajax调用返回值?
- 在等待AJAX回调时更改image src:仅适用于Firefox
- Javascript函数在等待ajax响应时循环调用
- 窗口关闭后仍在等待ajax查询
- 使用while循环在等待AJAX响应时暂停javascript
- 如何在继续执行之前等待 ajax 使用 JSON 获取数据
- 在继续使用脚本之前等待AJAX响应
- 在函数中-等待ajax响应
- 如何让代码在调用Ajax等异步调用时等待