實際上你根本就不需要jQuery。 HTML5本身爲在線/離線條件下運行的應用程序提供了一個整潔的工具 - cache manifest。緩存清單是<html>
標籤的manifest
屬性引用一個純文本文件:
<html manifest="cache.manifest">
這個清單文件的內容告訴瀏覽器,哪些資源需要聯機條件函數(NETWORK
),該文件緩存( CACHE
)以及在離線時請求網絡資源時如何處理(FALLBACK
)。
CACHE MANIFEST
# the above line is required
NETWORK:
*
FALLBACK:
* error404.html
CACHE:
index.html
about.html
help.html
# Plus all other resources required to make it look nice
style/default.css
images/logo.png
images/backgound.png
使用清單,瀏覽器首先查閱清單,並沒有任何腳本,據此行爲根據是在線還是離線。
http://dev.w3.org/html5/spec-preview/offline.html#manifests
UPDATE:
請注意,響應內容類型的關鍵要求。純文本根本不起作用。
必須使用text/cache-manifest
MIME類型來提供清單。
http://dev.w3.org/html5/spec-preview/offline.html#writing-cache-manifests
另外要注意,在清單中未列出的所有URL被從負載封鎖作爲結果。這就是爲什麼我通過通配符(*
)修復了上述清單以允許「其餘」。這可能會幫助你開始。
我按照您指定的方式嘗試;警告在if/else中。如果按我的預期完美工作,當我禁用我的網絡連接來測試其他時,它會失敗並仍然顯示if語句中顯示的內容。 – Brendan 2012-03-02 01:18:27
這不是傻瓜證明,它從瀏覽器獲取數據。 – Bot 2012-03-02 01:26:24
它只是顯示您是否處於「離線」模式,我正在尋找一種方法來實際檢查您是否可以訪問互聯網。 – Akbari 2016-10-27 06:21:07