09/10/2018, 23:00

Trục trặc với AJAX

Trong khi làm việc với AJAX mình vấp phải 1 vấn đề muốn nhờ các bạn giúp đỡ.
Hiện tượng như sau :
Trên trang web mình bố trí một liên kết, khi click vào đó thì sẽ gọi một hàm JS thực hiện việc load 1 tập bản ghi từ DB lên, mọi việc diễn ra bình thường, nhưng sau khi cập nhật các bản ghi này (xóa/sửa), bấm lại vào liên kết nói trên thì trên IE vẫn nhận được kết quả như cũ, tức là không thay đổi gì (các bản ghi đã thay đổi vẫn hiển thị nội dung cũ, các bản ghi đã bị xóa vẫn hiện ra), trong khi đó thì trên FF mình nhận được kết quả mới ngay lập tức. Đối với IE thì để nhận được kết quả mới mình phải tắt cửa sổ đó đi và bật lại 1 cửa sổ khác, không biết liệu có phải do IE cache dữ liệu ở đâu đó không, và làm sao để loại bỏ nó.

Server-side script mình dùng PHP 4/5.

Rất mong các cao thủ giúp đỡ! Xin đa tạ!!!
kid08 viết 01:03 ngày 10/10/2018
sao mình ko bị lỗi đó nhỉ, bạn coi lại code xem, AJAX gọi đến văn bản đã sửa sau khi nó đã sửa rồi thì luôn đúng
laonong viết 01:01 ngày 10/10/2018
Vấn đề là chạy trên Firefox thì ngon, nhưng chạy trên IE thì lại bị lỗi đó. Mình đã giải quyết được rồi, mặc dù phải dùng tip & trick hơi củ chuối 1 chút. Cám ơn bạn!
NsT viết 01:05 ngày 10/10/2018
cái này theo mình biết thì do 1 phần code javascript của bạn. IE nó cache lại. Mình đã gặp trường hợp này lúc mới làm thử ajax. Cách fix của mình là code lại cái code load page ở ajax hợp lý hơn
laonong viết 01:03 ngày 10/10/2018
Nếu vậy bạn có thể nói rõ giúp mình là code lại cái load page hợp lý hơn là như thế nào không? Cám ơn bạn nhiều
duongdragonxxx viết 01:14 ngày 10/10/2018
Quote Được gửi bởi laonong
Trên trang web mình bố trí một liên kết, khi click vào đó thì sẽ gọi một hàm JS thực hiện việc load 1 tập bản ghi từ DB
Các bác cho hỏi chút xíu làm sao dùng JS connect với DB dzậy. Hay là load bằng code php rồi chuyển qua JS. Nếu như vậy thì chuyển qua như thế nào.
kid08 viết 01:09 ngày 10/10/2018
u đọc định nghĩa AJAX đi thì hiểu cái đó ngay
COTTONBELLY viết 01:03 ngày 10/10/2018
Đặt header no-cache trong server-side script xử lý.
@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
@header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
@header("Cache-Control: no-cache, must-revalidate");
@header("Cache-Control: post-check=0, pre-check=0", false);
@header("Pragma: no-cache");
Bài liên quan
0