如何解决Ajax 长轮询不会在中止时停止我的 PHP 脚本
JS:
jQuery.ajax({
type: "POST",url: long.PHP,dataType: 'json',cache: false,timeout: 10000,success: function(resp) {
//do something...
observeChanges();
},error: function() {
observeChanges();
}
});
和 PHP
session_write_close();
ignore_user_abort(false);
set_time_limit(60);
header("Cache-Control: no-cache,must-revalidate");
while (true) {
if ( connection_aborted() || connection_status() != CONNECTION_norMAL ) { break; };
//do something... - check if file data is change - if change then return and break - whatever
sleep(1);
echo 'whatever';
wp_cache_flush();
ob_flush();
flush();
}
我的问题是,当 JS 停止/中止/超时 ajax 请求并在 PHP 中打开新的然后以前的脚本时,没有停止(为了测试,我专门为 js 和 PHP 提供了不同的超时)并且仍在工作,并且一些此操作会杀死我的服务器因为我有很多而不是一个 PHP 操作。
我尝试使用 ignore_user_abort(true); - 但不工作。请帮忙 - 我做错了什么?我忘记了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。