在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 如何更新緩存

如何更新緩存

問(wèn)題描述

如何不填寫js、css、img的版本號(hào),通過(guò)meta來(lái)更新緩存呢?

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

因?yàn)轫?yè)面太多也沒(méi)有項(xiàng)目搭建,純html+css+js的方式來(lái)做得,要手動(dòng)的更改版本號(hào)真的很麻煩。
據(jù)我說(shuō)了解的就是想要協(xié)商緩存,檢查服務(wù)器文件是否更新,如果更新則重新下載,如果沒(méi)有更新則利用緩存。
但是以下三個(gè)meta據(jù)我所了解,有優(yōu)先級(jí)、什么之分的,我不太清楚是每次都要重新下載還是跟我說(shuō)的一樣。

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

以上代碼選取哪幾個(gè)或者是怎么改,能達(dá)到

檢查服務(wù)器文件是否更新,如果更新則重新下載,如果沒(méi)有更新則利用緩存。

這種效果。希望各位大佬能夠解決我的疑惑。
因?yàn)殛P(guān)于緩存這一塊網(wǎng)上的說(shuō)法太抽象了。

回答
編輯回答
小眼睛
檢查服務(wù)器文件是否更新,如果更新則重新下載,如果沒(méi)有更新則利用緩存。

你需要的應(yīng)該是ETag

HTTP 緩存 | Web | Google Developers

http-cache-decision-tree

2017年6月11日 00:51
編輯回答
涼薄

那三行meta之前配置過(guò),然并卵,查了很久也沒(méi)成功過(guò),不知道是不是需要額外的搭配才能生效。

提供一點(diǎn)思路:
首先要明白一點(diǎn),瀏覽器中緩存資源,比如js、css、image之類的,其實(shí)是從服務(wù)器端拿的。
可以根據(jù)實(shí)際情況,來(lái)配置服務(wù)端的緩存時(shí)間,例如nginx就可以對(duì)每種不同的資源設(shè)置不同的緩存期限,超過(guò)設(shè)置的期限后,下次再問(wèn)服務(wù)端拿,就會(huì)拿到最新的資源。

所以,可以設(shè)置瀏覽器不做緩存,服務(wù)端設(shè)置html不緩存,然后資源加后綴(最簡(jiǎn)單的比如時(shí)間戳),以此來(lái)保證資源被修改之后,可以加載到最新的。當(dāng)然,前提是頁(yè)面中數(shù)據(jù)渲染,都是通過(guò)外聯(lián)的js中的接口傳輸后渲染的(比如單頁(yè)應(yīng)用)。

2018年5月28日 19:07