
離線
|
107
本機告示檔和遠端告示檔的比較是以位元組為單位對檔案內容進行比較(包
括註解和空白列)。確認是否有修改時,檔案修改時間戳記或者資源本身的
修改是不相關的。
如果下載時有地方出錯(例如,使用者的網際網路連線斷掉),只完成部份下載之暫時快
取區會被丟棄,而前次之快取依然有效。如果下載成功,則下次使用者啟動程式時,就會
使用新的當地檔案。
記住一點,程式啟動後,當告示檔被更新時,新檔案的下載會在背景中進行。
也就是說,即使下載完成,使用者依然會使用舊檔。換言之,下載完成時,
當前下載之頁面及其所有相關檔案並不會自動重載。直到使用者重啟程式
時,在背景中被下載之新檔案才會生效。
這一點很類似標準桌面程式更新行為。你啟動程式,程式告訴你有更新可用,
你點擊「
Download Updates
」,而下載完成時,你會看到提示文字,要求你
重啟程式,更新才會生效。
如果你想在程式中實作這種行為,可以監聽
window.applicationCache
物件
的
updateready
事件(第
119
頁「
JavaScript
控制台」那一節),然後以你
喜歡的方式來通知使用者。
線上白名單和後援選擇
我們也可以強迫瀏覽器總是透過網路存取某些資源(此種過程稱為
白名單化
,
whitelisting
)。這代表瀏覽器不會將資源存於本機快取區,當使用者離線時,這些資源也
無法使用。要把資源指定為有連線才能使用,就得在告示檔中使用
NETWORK:
關鍵字(結
尾的「
:
」是必要的):
CACHE MANIFEST
index.html ...