該項目沒有積極維護。
0.6.0 之前的使用者請注意:Offline 之前使用 Cloudfront 託管檔案作為偵測連線狀態的方法之一。 此方法現已棄用,且影像已被刪除。 請升級至離線版 0.7.0+。
當用戶失去連線時改善應用程式的體驗。
監視 ajax 請求以查找失敗
透過請求影像或虛假資源來確認連線狀態
自動抓取連線中斷時發出的 ajax 請求,並在連線恢復後重新發出它們。
簡單的使用者介面和漂亮的主題
3kb 縮小並壓縮
包括 javascript、主題之一以及網站上的一種語言。 你完成了!
要只使用沒有 UI 指示器的 JavaScript API,只需省略 CSS 檔案即可。
如果您想看看它在您網站上的外觀,請斷開互聯網連接,或嘗試模擬器。
或者,您可以在引入腳本後透過設定Offline.options
來提供一些配置。
選項(任何選項都可以作為函數提供)及其預設值:
{ // 我們是否應該在頁面載入時立即檢查連線狀態。 checkOnLoad: false, // 我們是否應該監控 AJAX 請求以協助確定是否有連線。 InterceptRequests: true, // 當連線中斷時我們是否應該自動定期重新測試(設定為 false 以停用)。 reconnect: { // 在重新檢查之前我們應該等待多少秒。 initialDelay: 3, // 重試之間應該等待多久。 延遲:(1.5 * 最後延遲,上限為 1 小時) }, // 我們是否應該儲存並嘗試重新發出在連線中斷時失敗的請求。 requests: true, // 我們是否應該在連線中斷時顯示貪吃蛇遊戲以保持使用者的娛樂性? // 它不包含在正常建置中,除了 //offline.min.js 之外,您還應該引入 js/snake.js。 遊戲:假}
Offline.check()
:檢查連線的目前狀態。
Offline.state
:連線的目前狀態“up”或“down”
Offline.on(event, handler, context)
:綁定事件。 活動:
up:連接已從下轉為上
down:連線已從 up 變成 down
已確認:連線測試已成功,即使連線已啟動也會觸發
確認關閉:連線測試失敗,即使連線已經關閉也會觸發
檢查:我們正在測試連接
重新連結:開始:我們正在開始重新連結過程
重新連線:已停止:我們已完成重新連線嘗試
reconnect:tick:在未進行檢查時嘗試重新連接期間每秒觸發一次
reconnect:connecting: 我們正在重新連接
重新連線:失敗:重新連線檢查嘗試失敗
requests:flush: 任何待處理的請求均已重新發出
requests:capture: 正在儲存一個新請求
Offline.off(event, handler)
: 解除事件綁定
預設情況下,Offline 會發出 XHR 請求來載入/favicon.ico
以檢查連線。 如果您沒有這樣的文件,它將在控制台中顯示 404,但其他情況下工作正常(即使 404 也意味著連接已建立)。您可以更改它命中的 URL(一個能夠快速回應 204 的端點是完美的):
Offline.options = {檢查: {xhr: {url: '/connection-test'}}};
確保您檢查的 URL 與您的頁面具有相同的來源(連接方法、網域和連接埠都必須相同),否則您將遇到 CORS 問題。 您可以將Access-Control
標頭新增至端點以在現代瀏覽器上修復它,但它仍然會在 IE9 及更低版本上導致問題。
如果您確實想在不同的網域上執行測試,請嘗試映像方法。 它載入允許跨域的圖像。
Offline.options = {檢查:{圖像:{url:'my-image.gif'},活動:'圖像'}}
需要注意的是,使用圖像方法,我們無法區分 404 和真正的連接問題,因此任何錯誤都會在 Offline 中顯示為連接問題。
離線還包括一個名為'up'
檢查和另一個名為'down'
檢查,它們將始終分別報告向上或向下以進行測試。 您可以透過設定active
選項來啟動它們,將資料屬性新增至腳本標記,名稱為data-simulate
且值為'up'
或'down'
,或透過將localStorage.OFFLINE_SIMULATE
設定為'up'
或'down'
。
當連線中斷時,重新連接模組會定期自動重新測試連線。成功的 AJAX 請求也會觸發靜默重新檢查(如果interceptRequests
不為 false)。
您可以將reconnect
設定為 false 來停用重新連接模組。 可以透過設定重新連接設定上的選項來配置重新連線。
請求模組保存所有失敗的 AJAX 請求,並在對它們進行重複資料刪除後,在連接恢復時重新建立它們。
您可以透過將requests
設為 false 來停用它。
如果您希望重複資料刪除也考慮到要求的內容,您也可以將 deDupBody 設為 true。
沒有任何!
現代 Chrome、Firefox、Safari 和 IE8+
請注意,並非所有瀏覽器(包括 Safari 和舊版 IE)都支援離線事件,迫使 Offline 使用不太準確的偵測方法。