$.post
当 jQuery中止时,我希望停止执行 PHP 脚本abort()
。基本上,每当用户更改任何输入字段时,$.post
都应该点击test.php
. 如果在第一个请求返回之前更改了第二个输入,则将$.post
中止并发送一个新输入。我希望 PHP 在发生这种情况时停止执行。
仅当客户端正常断开连接(使用 STOP 按钮)时,connection_status() 才会返回 ABORTED 状态。在这种情况下,浏览器会发送 RST TCP 数据包,通知 PHP 连接已关闭。
有没有RST TCP
在使用时发送xhr.abort()
?
以确保我已经在test.php
文件中对此进行了测试。理论上,如果脚本停止,文件应该有不同的大小和行数。但它们都是一样的。所以脚本不会中止。
jQuery主文件:
var xhr = false;
$('input').on('change', function(){
if(xhr){
xhr.abort();
}
xhr = $.post('/test.php', this.value, function(b64){
xhr = false;
});
});
PHP 测试.php
ignore_user_abort(false);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test/test1.log', "1\r\n", FILE_APPEND);
sleep(1);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test/test2.log', "1\r\n", FILE_APPEND);
sleep(1);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test/test3.log', "1\r\n", FILE_APPEND);
sleep(1);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test/test4.log', "1\r\n", FILE_APPEND);