2012-11-08 61 views
1

因此,我有一個使用ApplicationCache存儲離線數據的應用程序。長話短說,對於沒有啓用離線數據的用戶來說,這是無聲的死亡,最常見的原因是他們關閉了歷史記錄或正在使用隱私瀏覽功能,我想趕上這一點並給用戶一個明確的錯誤。檢查瀏覽器是否禁用了離線應用程序緩存

似乎,這可以通過檢查高速緩存的狀態,這將返回被檢測到0;如果沒有緩存...但我不知道這意味着沒有緩存UNCACHED,或者沒有緩存保證(並且因爲應該有,有些事情是錯誤的)。該official definition小於有用:

UNCACHED (numeric value 0) 
The ApplicationCache object's cache host is not associated with an application 
cache at this time. 

但在實踐中,中止對cache.status==0似乎好工作,至少在Firefox瀏覽器。我做對了嗎,還是有更好的辦法?如果有人能夠挖掘出一個狀態圖,那就多加點。

更新:不,如果用戶以前從未去過那個頁面,它也返回0/UNCACHED。碣!

回答

1

收聽applicationCache上的error事件。當這起火併且applicationCache.status===applicationCache.UNCACHED很多之中的一個原因是緩存被禁用。給用戶的消息可能是建議緩存關閉。

+1

嗨,這是否也表明應用程序緩存不支持有問題的設備/瀏覽器?或者在這種情況下window.applicationCache屬性根本不存在? – bigp

相關問題