我的JavaScript需要一些數據發送到服務器時,該頁面將關閉,這是我目前做同步AJAX(SJAX?)在window.onbeforeunload
請求。當然,問題在於,如果我的服務器耗時過長或者網絡連接中斷,瀏覽器將凍結。的Javascript同步AJAX超時
從我讀過的東西,這是不可能指定同步AJAX請求超時和異步AJAX請求不要window.onbeforeunload
工作。如何解決這個我最好的猜測是使用異步請求,然後鎖住瀏覽器一段時間,讓請求處理:
window.onbeforeunload = function() {
doSomeAjax(); // asynchronous request
var now = new Date();
var time_limit = now.getTime()+2000; // 2,000 ms
while(now.getTime() < time_limit) {
now = new Date();
}
}
將這項工作?這種方法有什麼潛在的問題嗎?
我個人覺得這整個的方法可能需要改變。窗口關閉事件非常棘手,在一個瀏覽器上運行的是肯定會在另一個瀏覽器上發生的。你能告訴我們更多關於你的目標嗎?然後有人可能會提出一種不同的方法。 – e4c5 2010-02-22 08:40:08