We2b

We come to Web 2.0 together

Xử lý vấn đề cache khi áp dụng AJAX một cách đơn giản

,

Ta thường dùng AJAX để truy vấn dữ liệu trên một phần của trang. Dữ liệu sẽ chỉ được truy xuất trong lần yêu cầu đầu tiên rồi lưu lại cache, những lần sau thì trình duyệt sẽ lấy luôn dữ liệu trên cache. Đây là cơ chế hợp lý để tránh phải thực hiện truy xuất CSDL nhiều lần. Nhưng trong trường hợp bạn muốn refresh dữ liệu này thì sao?
Một cách đơn giản, ta chỉ cần thêm vào url của trang cần refresh (chẳng hạn là data.asp) một biến (ta gọi là noCache ) mà giá trị của biến này thay đổi mỗi lần gọi. Đơn giản ta có thể lấy noCache là ngày giờ hoặc là dùng hàm random để gán giá trị cho nó.
Ta xây dựng 1 hàm noCache đơn giản để gán thêm biến noCache vào url bình thường như sau:
function noCache(url)
{
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds=currentTime.getSeconds()
 return url + "?noCache=" + seconds+"."+minutes+"-"+hours
}

Sau đó, trong lời gọi ta thay url bằng noCache(url), ví dụ:
xmlHttp.open("GET",noCache(url),true)

Đó là một cách giải quyết đơn giản, có thể xem thêm ở đây

Thiết kế lại logo theo phong cách của Web 2.0 Mở eBay Vietnam, eBay tiến vào thị trường Việt Nam

Write a comment

New comments have been disabled for this post.

June 2012
S M T W T F S
May 2012July 2012
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30