Đối với một số dynamic page, tôi sử dụng Ajax Long Polling và thậm chí với jQuery 1.9, Internet Explorer bị treo sau yêu cầu đầu tiên.
Mã kịch bản được dựa trên bài viết 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>
Giao diện điều khiển cho thấy không có lỗi.
mạng lưới giám sát Các IE ngay lập tức bộc lộ nhiều yêu cầu đối với tài nguyên ajaxstats.json
với một thời gian phản ứng của < 1 ms và mã 304 (not modified)
phản ứng. Nội dung phản hồi là chính xác (mã JSON).
Mã máy chủ luôn trì hoãn câu trả lời bằng 1000 mili giây. Và trong Firefox, nhật ký Firebug XHR cho thấy mọi yêu cầu mất khoảng 1000 mili giây, như mong đợi.
Các mã phản hồi HTTP là khác nhau giữa Firefox và Internet Explorer:
- trong Firefox: mã phản hồi là
200 ok
- trong Internet Explorer 9, các mã phản hồi là
304 (not modified)
Có một cách để làm việc xung quanh vấn đề này IE?
bất kỳ lỗi nào trong bảng điều khiển? lưu lượng truy cập http thì sao? – jbabey
@jbabey xem chỉnh sửa của tôi, tôi sẽ cập nhật nó với những phát hiện của tôi trong Firefox – mjn
Bạn đã xóa bộ nhớ cache của mình chưa? Bạn đang thực hiện một yêu cầu GET sẽ lưu lại câu trả lời http. Đặt tùy chọn bộ nhớ cache cho cuộc gọi ajax nếu bạn muốn jQuery thêm tham số truy vấn chuỗi truy vấn bộ nhớ cache vào cuộc gọi. – epascarello