離線應用

來了解什麼是離線應用,在沒網路情況下,頁面內容還是會顯示

如何解決傳統 Web App的缺點

  • 無法離線使用

當client 發出網路請求,如果失敗了,我們可以在緩存中獲取備份內容。但是如果連結很慢的話,用戶依然看不到頁面裡內容,這種體驗相當差。

我們可以這樣做:

採取offline first
是指用戶在設備上已有內容,先採取緩存方式

使用這種緩存方法,我們依然可以請求網路,但我們不會等待這過程,我們會從緩存中獲取內容。並且再最終從網路獲取內容後更新頁面。
當我們從網路獲取最新內容後,可以更新用戶所看到內容,并將最新內容保存到緩存中,供下次使用。

使用這種再沒有網路情況下,依然可以看內容,總比沒顯示好很多。

介紹Service Worker

Service Worker是在後台啟動一條服務worker線程。它無法訪問DOM,但可以控制頁面,控制是指browser發出請求時會攔截請求,但可以正常將請求發送。
就是說Worker的工作是把一些資源緩存下來,然後攔截請求,先看緩存庫裡有沒有,如果有就先從緩存庫取出,如果沒有就正常的請求。

即使離線或斷網了,依然可以訪問,

總結

離線優先做法,會先從緩存取出,然後響應頁面裡內容。如果緩存中沒有,就會請求網路獲取。

學習資源
google service worker
Service Worker 官網