1. 程式人生 > >《高性能網站建設指南》筆記

《高性能網站建設指南》筆記

fetch 嵌入 js文件 後者 全局 html 註意 隔離 一次

js文件什麽時候合並?

css和js到底是內聯還是外部引入?

  前者速度快,但沒辦法緩存,沒辦法多頁面共用;後者速度慢,需要額外的請求,但可以緩存,多頁面共享。

  兩全其美的辦法【內聯+預加載+cookie標誌判斷】:用戶第一次打開網頁時,沒有cookie,服務器返回包含內聯css和js的頁面和cookie,速度很快,頁面空閑下來後執行預加載;第二次打開有cookie了,而且第一次執行了預加載,現在可以返回一個帶外部文件的html了,因為之前預加載了,所以速度很快。註意,第一次預加載的時候,要處理內聯代碼和預加載的代碼,防止兩者沖突。解決沖突的方式如下(主要是處理js,因為css重復的話沒問題,但js重復執行的話可能會造成問題):

  1.創建一個不可見的iframe,裏面是空白。iframe標簽onload之後,往裏面的dom添加script標簽或者link標簽,因為iframe內外環境是隔離的,所以不會有影響

  2.使用preload、prefetch等屬性

  3.最麻煩的方式,處理沖突的邏輯嵌入到業務邏輯中。標誌一個全局變量,來判斷代碼有沒有執行過。

《高性能網站建設指南》筆記