對於dynamic page,我使用Ajax Long Polling,甚至在jQuery 1.9中,Internet Explorer在第一次請求後掛起。
腳本代碼是基於文章Simple Long Polling Example with JavaScript and jQuery
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
(function poll(){
$.ajax({ url: "ajaxstats.json", success: function(data){
$("button.requests").empty().append(data.requests);
}, dataType: "json", complete: poll, timeout: 30000 });
})();
});
</script>
控制檯顯示沒有錯誤。
的IE網絡監視器立即顯示許多請求到ajaxstats.json
資源與< 1毫秒一個響應時間和304 (not modified)
響應代碼。響應主體是正確的(JSON代碼)。
服務器代碼總是延遲答案1000毫秒。在Firefox中,Firebug XHR日誌顯示每個請求都如預期的那樣需要大約1000毫秒。
HTTP響應代碼是Firefox和Internet Explorer之間不同:
-
在Firefox
- :響應代碼是
200 ok
在Internet Explorer 9 - ,響應代碼是
304 (not modified)
是否有一種解決這個IE問題的方法?
在控制檯中的任何錯誤?那麼http流量呢? – jbabey
@jbabey看到我的編輯,我將用我在Firefox中的發現進行更新 – mjn
您是否清除了緩存?您正在發出一個GET請求來緩存http響應。如果您希望jQuery向調用添加緩存中斷查詢字符串參數,請將緩存選項設置爲ajax調用。 – epascarello