標籤:
ApplicationCache主要簡單介紹:
applicationCache對象實現HTML5相應WEB離線功能。以下我們來主要解說applicationCache對象的一些主要功能和方法
applicationCache對象記錄著本機快取的各種狀態及事件。緩衝的狀態能夠通過window.applicationCache.status獲得,其狀態
主要包含例如以下6種:
<span style="font-family:Microsoft YaHei;font-size:12px;">interface ApplicationCache:EventTarget{const unsigned short UNCACHED=0;//未緩衝const unsigned short IDLE=1;//空暇狀態const unsigned short CHECKING=2;//檢查中const unsigned short DOWNLOADING=3;//下載中const unsigned short UPDATEREADY=4;//更新準備中const unsigned short OBSOLETE =5;//到期狀態readonly attribute unsigned short status;}</span>
applicationCache緩衝對象的事件例如以下表所看到的:
事件名稱 |
說明 |
Checking |
當user agent檢查更新時,或者第一次下載manifest清單時,它往往是第一個被觸發的事件 |
Noupdate |
當檢查到Manifest中資訊清單檔不須要更新時,觸發該事件 |
Downloading |
第一次下載或更新manifest資訊清單檔時,觸發該事件 |
Progress |
該事件與downloading類似,但downloading事件僅僅觸發一次。Progress事件則在資訊清單檔下載過程中周期性觸發 |
Cached |
當manifest資訊清單檔完成下載及成功緩衝後,觸發該事件 |
Upadateready |
此事件的含義表示緩衝資訊清單檔已經完成下載,可通過又一次載入頁面讀取快取檔案或者通過方法swapCache切換到新的快取檔案。經常使用語本機快取跟新版本號碼後的提示 |
Obsolete |
增加訪問manifest快取檔案返回HTTP404錯誤(頁面未找到)或者410錯誤(永久消失)時,觸發該事件 |
Error |
若要達到觸發該事件,須要滿足一下幾種情況之中的一個: 1、已經觸發obsolete事件 2、manifest檔案沒有改變,但快取檔案裡存在檔案下載失敗 3、擷取manifest資源檔時發生致命錯誤。 4、當更新本機快取時,manifest檔案再次被更改。 |
在實際的應用中,我們能夠通過事件監聽,並依據當前applicationCache對象的狀態處理相關業務。
例如以下代碼所看到的:
<span style="font-family:Microsoft YaHei;">applicationCache.addEventListener('updateready',function(){//資源檔下載中,能夠在此部分添加業務功能});</span>
接下來值得注意的是,在平時的開發過程中,在使用applicationCache本機快取的同一時候,往往須要推斷當前瀏覽器的狀態(線上或離線)。HTML5正好提供了一個屬性,用於推斷當前瀏覽器是否線上,代碼例如以下:
windowz.navigator.onLine
假設返回ture,則說明當前瀏覽器online,返回false則說明當前瀏覽器offline
HTML5系列之——applicationCache對象