2012-08-05 28 views
11

Tôi đến vấn đề này khá nhiều lần, trong đó một số người dùng có bộ nhớ cache ứng dụng bị hỏng (HTML 5).Làm sạch và cập nhật bộ nhớ cache ứng dụng html5 qua javascript

Tôi cập nhật tệp kê khai mỗi khi có bản phát hành mới vẫn còn một số lần một số người dùng nhận được bộ nhớ cache của ứng dụng bị hỏng.

Tôi có thể xóa hoàn toàn nội dung mới từ máy chủ.

Có cách nào để sử dụng Javascript không?

+0

Bạn đã xem bài đăng này chưa? http://stackoverflow.com/questions/1011605/clear-the-cache-in-javascript hoặc trang này: http://stackoverflow.com/questions/8155064/how-to-programmatically-empty-browser-cache –

+0

vì vậy chúng tôi không thể cập nhật phiên bản ứng dụng HTML 5 của bộ nhớ cache? – Tushar

+0

Xem câu trả lời của tôi dưới đây –

Trả lời

13

Theo bài viết sau trên

http://www.w3schools.com/html5/html5_app_cache.asp

có ba cách trên Mà bộ nhớ cache ứng dụng sẽ được đặt lại, đây là những:

  1. Người dùng xóa bộ nhớ cache của trình duyệt
  2. Tệp kê khai được sửa đổi
  3. Bộ nhớ cache của ứng dụng được cập nhật theo chương trình

Thông tin thêm về lập trình cập nhật bộ nhớ cache ứng dụng có thể được tìm thấy ở đây:

http://www.html5rocks.com/en/tutorials/appcache/beginner/

Nó trông giống như sau:

var appCache = window.applicationCache; 

appCache.update(); //this will attempt to update the users cache and changes the application cache status to 'UPDATEREADY'. 

if (appCache.status == window.applicationCache.UPDATEREADY) { 
    appCache.swapCache(); //replaces the old cache with the new one. 
} 
+8

Không sử dụng w3schools như một tài liệu tham khảo ... [w3fools] (http://w3fools.com) – Andreas

+0

Tôi vẫn còn phải đối mặt với cùng một vấn đề, tôi nghĩ vì tệp kê khai có hiệu quả không thay đổi. Do đó nội dung được lưu trữ không được cập nhật. Chỉ tệp kê khai được tìm nạp lại. – Tushar

+2

@Andreas chúng chỉ là một trong nhiều trang web cung cấp thông tin này và thông tin chính xác. Đó có thể là vấn đề của bạn, bộ nhớ cache sẽ không bị xóa nếu bạn không áp dụng cho một trong các điều kiện trên. –

7

Cái này là khá cũ nhưng khi tôi nhìn thấy một câu trả lời sai đang được bỏ phiếu, tôi cảm thấy muốn đưa ra một số gợi ý ....

Nếu những người gặp khó khăn khi lo oking tại spec, bạn có thể thấy rằng không có cách nào để mã buộc trình duyệt tải lại bộ nhớ cache, trừ khi có sự thay đổi trong tệp kê khai và đó là khi "appCache.status == window.applicationCache.UPDATEREADY" là đúng.

Nhìn đây http://www.w3.org/TR/2011/WD-html5-20110525/offline.html

"updateready Các nguồn lực được liệt kê trong biểu hiện mới đã được redownloaded, và kịch bản có thể sử dụng swapCache() để chuyển sang bộ nhớ cache mới."

Vì vậy, hãy đọc kỹ, bạn thấy rằng applicationCache được chuyển đến trạng thái đó khi tài nguyên vừa tải xuống ... tức là sự kiện "tải xuống" trước đã xảy ra ... và trước đó là "kiểm tra" "....

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