我發現這種方法偶爾工作,但通常根本不起作用。如何發送窗口卸載AJAX請求,而不必等待迴應
$(window).unload(function()
{
$.ajax
({
url: "script.php",
type: "POST",
data:
{
value: value
}
});
});
設置異步爲假(即'async' : false
)不得到解決的問題,並執行PHP腳本每次。但取決於腳本,它可以暫時凍結瀏覽器。
有沒有一種很好的方式將數據發送到php腳本並讓服務器在沒有用戶等待響應的情況下執行它?
EDIT - 我對客戶端 - 服務器交互的理解很生疏,但並不是發送請求需要很長時間,而是處理請求發送的數據。我想知道如果沒有用戶必須在頁面上進行處理。
感謝您的回答。但它並沒有解決問題。數據仍未保存。我還注意到,它偶爾保存在域內的鏈接中,但是當用戶關閉窗口時,它永遠不會保存。 –
你還有async設置爲false嗎?因爲如果沒有,您可能會在發送所有數據之前終止請求。 –
這應該強調更多,異步**需要**設置爲false才能使其工作。異步請求將被瀏覽器的默認行爲取消,因此可能會或可能無法工作。例如 - 如果服務器在瀏覽器刷新/關閉完成之前返回響應,則它可以工作,但大多數情況下會調用取消請求。然後這一切都取決於瀏覽器在這種情況下的行爲 - 在我的測試中,使用FF進行的請求往往會被計算,而使用Chrome進行的請求則不會。 – eithed