2013-01-24 33 views
6

Theo thiết kế hỗ trợ HTML5 ngoại tuyến (AppCache) hoạt động nếu thiết bị của khách hàng là ẩn hoặc thiết bị khách hàng đang trực tuyến và máy chủ có thể truy cập. Sau đó tôi lưu trữ các ứng dụng và mở cửa trở lại nó trong trình duyệt (của làm mới nó) khi thiết bị không có truy cập internet trình duyệt tải các ứng dụng từ AppCache. Trong trường hợp này trình duyệt không cố gắng để lấy appcache manifest (nó hiểu rằng chúng tôi ẩn).HTML5 AppCache: làm thế nào để thực hiện chế độ offline nếu máy chủ không thể truy cập nhưng mạng có thể truy cập

Nhưng chúng ta hãy xem xét một trường hợp khi điện thoại của tôi không phải là ẩn. Nó vẫn có kết nối internet. Nhưng máy chủ của tôi bị hỏng. Có thể có nhiều lý do khác nhau cho điều này (lỗi phần cứng, AppPool dừng lại, IIS throttling, DNS lỗi và vv). Trong trường hợp này khi tôi mở một ứng dụng được lưu trong bộ nhớ cache trong trình duyệt, nó sẽ cố gắng tìm nạp tệp kê khai appcache và nhận lỗi 404 (không tìm thấy). Và sau đó trình duyệt xóa AppCache cho ứng dụng! Vì vậy, vào lần chạy tiếp theo, nó sẽ không tải nó từ AppCache và hiển thị lỗi 404 "trang". Không còn hoạt động ngoại tuyến nữa.

Có vẻ xa lạ đối với tôi rằng chế độ ẩn chức năng phụ thuộc vào một lý do máy chủ không thể truy cập. Tại sao tôi nên quan tâm đến tư cách người dùng (không có kết nối internet hoặc máy chủ bị hỏng)? Vì vậy, câu hỏi của tôi là: không ai biết cách làm cho ứng dụng hoạt động khi thiết bị trực tuyến nhưng máy chủ của nó không thể truy cập được?
Lý tưởng nhất là tôi nên có thể bắt lỗi kiện window.applicationCache và nói với nó "đó là ok, xin vui lòng continute để sử dụng bộ nhớ cache, không lỗi thời nó".

+0

trình duyệt nào, tôi chỉ làm điều này trong Chrome và manifest bộ nhớ cache của tôi vẫn còn đó. Tắt máy chủ nhưng vẫn trực tuyến, đã xảy ra lỗi: Sự cố Lỗi ứng dụng bộ nhớ cache: Tìm nạp tệp kê khai thất bại (-1) nhưng Chrome không xóa tệp kê khai ban đầu của tôi. – mattdlockyer

+1

Tôi đang sử dụng Chrome 24. Tôi có hành vi tương tự trong Firefox cuối cùng. Trạng thái http mà trình duyệt của bạn nhận được khi bạn tắt máy chủ? Tôi bị 404, tôi thấy nó ở Fiddler. Trong giao diện điều khiển của trình duyệt, tôi thấy các tài liệu sau: Tài liệu được tải từ Bộ nhớ cache của ứng dụng với http: //localhost/ajax/manifest.appcache Sự kiện kiểm tra bộ nhớ cache của ứng dụng Sự kiện bộ nhớ cache ứng dụng Sự kiện lỗi thời – Shrike

+1

Bất kỳ tin tức nào về điều này? Tôi đang đối mặt với cùng một vấn đề ngay bây giờ. – Roland

Trả lời

0

này là không thể theo application-cache specification:

Otherwise, if fetching the manifest fails in some other way (e.g. the server returns another 4xx or 5xx response or equivalent, or there is a DNS error, or the connection times out, or the user cancels the download, or the parser for manifests fails when checking the magic signature), or if the server returned a redirect, or if the resource is labeled with a MIME type other than text/cache-manifest, then run the cache failure steps.

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