我必須承認,這是我在這個網站上的第一篇文章,所以如果我做錯了某些事情(格式等),我會在意見中道歉。jquery Ajax調用崩潰的Internet Explorer?
無論如何,我創建了一種使用JavaScript(和jQuery)的mmo,到目前爲止,Chrome,Safari,Firefox等中的所有內容都運行良好。但是,我發現在某個地方,互聯網資源管理器崩潰。
通過再現我已經收窄到這個代碼崩潰:
function getUpdates(){
var data={uid:playerName,area:1,mid:lastMessage};
$.ajax({
url: "getUpdates.py",
timeout: 32000,
data: data,
type:"GET",
complete: function(obj, textStatus){
//handleUpdates(obj);
getUpdates();
}
});
}
這應該輪詢在很長一段時間更新。但是,在一次回覆後的IE瀏覽器中,這段代碼陷入了無限循環,這會導致瀏覽器崩潰。每次回覆後,似乎都不會崩潰,只有在沒有服務器響應的情況下。
注意,這行「完整:......」已經嘗試爲:
success: function(...){getUpdates();...},
error: function(...){getUpdates();...}
同樣的問題發生。
它看起來像你做的一切正確..祝賀!但是,您應該添加'javascript'和/或'ajax'標籤而不是'long-polling'。 – SLaks 2010-09-06 02:27:26
爲什麼在再次調用getUpdates()之前不要超時。 – 2010-09-06 02:28:18
服務器需要很長時間才能響應請求(這就是爲什麼有32秒超時限制),某些請求在生成答覆之前最多可能需要30秒。該遊戲是實時的,因此在獲取之間添加額外的客戶端延遲非常明顯,並且不會節省太多帶寬。 – Sylvan 2010-09-06 02:53:26