- 存放靜態(tài)資源文件到服務(wù)器 但這種形式在性能上也有缺陷:
- 受地理環(huán)境影響,離服務(wù)器越遠(yuǎn)資源加載越慢
- 頻繁請求資源對服務(wù)器壓力較大
- 存放靜態(tài)資源文件到CDN為了進(jìn)一步提升性能,可以把動態(tài)網(wǎng)頁(index.html)和靜態(tài)資源(js、css、image...)分開部署。靜態(tài)資源被放置于CDN上. 但是CDN也有緩存策略:新的靜態(tài)資源發(fā)布后,需要一定的時(shí)間去覆蓋各個邊緣站點(diǎn)的舊資源。若某客戶端獲得了新的動態(tài)網(wǎng)頁,但是附近的 CDN節(jié)點(diǎn)尚未更新最近發(fā)布的靜態(tài)資源,客戶端即便放棄本地緩存,它加載的依舊是位于CDN上的“臟數(shù)據(jù)”。怎么辦呢?干脆把文件名也給改了——讓摘要信息成為文件名的一部分!
具體實(shí)現(xiàn)可以仰仗webpack,將output.filename設(shè)為[name].[contenthash].js,輸出文件和 html 模版都會幫你更改好. 用摘要信息重命名后的資源文件,與舊資源就不同名了,不再需要以覆蓋舊文件的形式主動更新各個地區(qū)的邊緣站點(diǎn)。
新版本發(fā)布后,瀏覽器首次請求資源,若CDN不存在該資源,便會向就近的邊緣站點(diǎn)加載該文件,同時(shí)更新 CDN 緩存;這就徹底避免了CDN臟數(shù)據(jù)的問題.
更多關(guān)于web前端培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。