2010-08-06 15 views
19

Tôi đang sử dụng JavaScript/Jquery để tự động cập nhật trang với giá trị từ cơ sở dữ liệu, mặc dù nó dường như không cập nhật trong Internet Explorer. Nó hoạt động tốt trong FireFox & Chrome. Bất cứ ai có thể giải thích những gì sai? Có vẻ như IE chỉ hiển thị phiên bản được lưu trong bộ nhớ cache của trang. Làm thế nào tôi có thể ngăn chặn điều này xảy ra? Cảm ơn.Sự cố với IE và setInterval() không làm mới/cập nhật

function updateComm() { 
var url="commandSys.php"; 
jQuery("#theElement").load(url); 
} 

setInterval("updateComm()", 1000); 

Trả lời

30

Cố gắng vô hiệu hóa bộ nhớ cache với ajaxSetup

$.ajaxSetup ({ 
    // Disable caching of AJAX responses */ 
    cache: false 
}); 

function updateComm() { 
var url="commandSys.php"; 
jQuery("#theElement").load(url); 
} 

setInterval(updateComm, 1000); 

Ngoài ra, bạn có thể tự chỉ nối thêm một +new Date-url nên gắn thêm một chuỗi truy vấn để ngăn chặn bộ nhớ đệm.

Hoặc, tắt bộ nhớ đệm ở phía máy chủ.

+1

Cảm ơn rất nhiều. Tôi đã sử dụng giải pháp "ajaxSetup". :) –

+0

yup, cũng đã làm việc cho tôi, chỉ cần sao chép và dán phần đầu tiên của mã này vào tệp của tôi. –

+0

tuyệt vời, đã có cùng một vấn đề với IE. Điều thú vị là, khi mở công cụ phát triển thì nó hoạt động. Cám ơn vì đã chia sẻ. –

0

Trang php của bạn được lưu trong bộ nhớ cache. Không có gì để làm với khoảng thời gian. Đặt tiêu đề bộ nhớ đệm phù hợp trên trang.

Các vấn đề liên quan