我发现这种方法偶尔工作,但通常根本不起作用。如何发送窗口卸载AJAX请求,而不必等待回应
$(window).unload(function()
{
$.ajax
({
url: "script.php",
type: "POST",
data:
{
value: value
}
});
});
设置异步为假(即'async' : false
)不得到解决的问题,并执行PHP脚本每次。但取决于脚本,它可以暂时冻结浏览器。
有没有一种很好的方式将数据发送到php脚本并让服务器在没有用户等待响应的情况下执行它?
EDIT - 我对客户端 - 服务器交互的理解很生疏,但并不是发送请求需要很长时间,而是处理请求发送的数据。我想知道如果没有用户必须在页面上进行处理。
感谢您的回答。但它并没有解决问题。数据仍未保存。我还注意到,它偶尔保存在域内的链接中,但是当用户关闭窗口时,它永远不会保存。 –
你还有async设置为false吗?因为如果没有,您可能会在发送所有数据之前终止请求。 –
这应该强调更多,异步**需要**设置为false才能使其工作。异步请求将被浏览器的默认行为取消,因此可能会或可能无法工作。例如 - 如果服务器在浏览器刷新/关闭完成之前返回响应,则它可以工作,但大多数情况下会调用取消请求。然后这一切都取决于浏览器在这种情况下的行为 - 在我的测试中,使用FF进行的请求往往会被计算,而使用Chrome进行的请求则不会。 – eithed