1
在某些特定頁面上,我需要在頁面卸載時在SQL中運行更新語句。在用戶到達下一頁之前,它需要完成。我正在使用JQuery 1.8.3。這裏是我開始的地方:JQuery onunload()AJAX無異步:false
$(window).unload(function() {
$.ajax({
type: "POST",
cache: false,
url: "myScript.php",
data: ({ /* my data */ }),
success: function(result) { /* do nothing */ },
error: function(data) { location.reload(); }
});
});
使用此方法更新語句沒有運行。通過閱讀它,我嘗試了「異步:錯誤」,它似乎並沒有解決我的問題,直到我檢查了我的表並看到值正在更新(僅在添加「async:false」之後)。根據進一步的閱讀,「異步:錯誤」在JQuery 1.8中已被棄用,但仍在努力執行更新語句。問題是update語句在下一頁的select語句已經完成之前沒有完成執行,所以數據已經過期,除非用戶刷新頁面。這是由於部分支持1.8中的「async:false」,寫入數據庫的執行速度較慢,數據庫的讀取速度較快,還有一些其他延遲問題,或者?即使卸載事件將用戶保留在頁面上,下一個HTTP請求是否可能會經過?