0
前清單,HTML頁面顯示出來,然後緩存清單開始下載在後臺指定的文件。但是,我更喜歡在初始頁面出現在屏幕上之前,緩存清單完成下載每個列出的文件。在用戶看到初始頁面的瞬間,他或她可以從互聯網斷開連接,並按照預期使用Web應用程序的所有功能。完成加載緩存顯示當你第一次正常加載與緩存清單一個Web應用程序的Web應用程序
有沒有一種方法可以做到這一點?
前清單,HTML頁面顯示出來,然後緩存清單開始下載在後臺指定的文件。但是,我更喜歡在初始頁面出現在屏幕上之前,緩存清單完成下載每個列出的文件。在用戶看到初始頁面的瞬間,他或她可以從互聯網斷開連接,並按照預期使用Web應用程序的所有功能。完成加載緩存顯示當你第一次正常加載與緩存清單一個Web應用程序的Web應用程序
有沒有一種方法可以做到這一點?
我想看看在應用程序緩存事件,特別是updateready
事件。
document.body.style.display = 'none'; //this should probably be in your stylesheet.
applicationCache.addEventListener('cached', function() {
/* All resources for update are downloaded */
// show your webpage here
document.body.style.display = 'block';
});
您可能需要還看一些在鏈接的參考列出的其他事件。如果沒有更新,我不知道這個事件是否會觸發。
但有幾個事件,如果沒有清單文件,或者如果沒有可用等沒有更新似乎是相當直截了當雖然。如果您有任何問題,只需發表評論。
編輯
您還需要監聽noupdate
事件來處理清單未更新的情況。 (謝謝@Applecot)
applicationCache.addEventListener('noupdate', function() {
//no updates, display the page
document.body.style.display = 'block';
});
非常感謝。爲了讓你知道,我還必須使用noupdate事件(用於在沒有可用更新的情況下加載頁面)和緩存事件(因爲Chrome/Safari/Opera在更新已準備就緒方面存在問題)。 – Applecot
很高興知道,我會將其添加到我爲其他人的答案中。感謝您花時間跟進。 –