2016-09-20 23 views
1

enter image description here如果網絡中存在可用更新(漸進式Web應用程序),緩存將被更新或不更新。如果是,那麼如何?

如果網絡中存在可用更新(漸進式網絡應用程序),緩存將被更新或不更新。如果是,那麼如何?

(電子商務場景)假設客戶端在第三次和第四次訪問相同的路徑,並且網絡接收到該路徑的一些更新(考慮您正在尋找flipkart中的手機)。但是,這是在高速緩存的內存搜索到的數據已經存儲並且網絡具有更新,所以如果我們訪問重複次數相同的路徑,服務工作人員將從本地存儲器獲取數據,其中存儲有更新的數據或已經存儲的數據上次訪問?

回答

0

Here's a good description

它歸結爲:(EX HTML或JavaScript文件)

當你得到一個資源使用HTTP/GET,響應可以包括兩個屬性:

  • Cache-Control: max-age=[number of seconds]

  • ETag: [some code or hash]

max-age告訴瀏覽器使用緩存多少秒而不是爲資源發送新的http/GET請求。

一旦超過最大使用時間,瀏覽器將發送包含ETag的http/GET請求。然後,服務器檢查其資源以查看ETag是否仍然與瀏覽器發送的匹配。如果匹配,服務器會發送一個304 Not Modified響應節省網絡帶寬。如果不是,則它會再次發送資源,並將瀏覽器緩存更新爲max-age中指定的新時間。

有關示例,請在查看此答案時轉到瀏覽器的開發者控制檯(如果您使用的是Chrome,請按CTRL + SHIFT + I)。重新加載頁面。轉至Network選項卡,並使用過濾器查找favicon。點擊它,你會看到的響應和請求頭如下面的圖像中:

enter image description here

通知的Cache-ControlEtag HTTP標頭元素。

+0

你能否詳細說明使用實時示例,如果可能的話? – Banty

+0

爲這個堆棧溢出網站添加了一個實時示例:)網絡是一個很棒的地方! –

相關問題