這裏有一份簡潔的前端知識體系等待你查收,看看吧,會有驚喜哦~若是以爲不錯,懇求star哈~前端
課程思惟導圖
Q:提高頁面性能的方法有哪些?
- 資源壓縮合並,減小HTTP請求
- 非核心代碼異步加載
- 使用瀏覽器緩存
- 使用CDN
- 預解析DNS
- HTML優化,如使用語義化標籤,避免重定向等
- CSS優化,如佈局代碼寫前面,根據需求加載的網絡字體,避免使用表達式
Q:異步加載的方式有哪些?
- 動態腳本加載
- defer
- async
Q:defer、async的區別是什麼?
- defer是在HTML解析後纔會執行的,若是有多個,按加載順序依次執行
- async是在加載完以後當即執行,若是是多個,執行順序與加載順序無關
Q:什麼是瀏覽器緩存?
資源文件在電腦磁盤上的備份git
Q:緩存的分類有哪些?(跟緩存相關的HTTP頭部有哪些?)
- 強緩存
- 特色:不請求,直接使用緩存
- 相關的HTTP頭部字段:
- Expires:過時時間,是個絕對時間,下發的是服務器時間,比較用的是客戶端的時間,因此會有誤差
- Cache-Control:過時時間,是個相對時間,優先級高,以客戶端的相對時間爲準,瀏覽器拿到資源以後的多少時間內都不會再去服務器請求
- 協商緩存
- 特色:瀏覽器不肯定備份是否過時,需與服務器請求確認
- 相關的HTTP頭部字段:
- Last-Modified/If-Modified-Since:服務器下發時間,客戶端請求時帶上下發時間,服務器判斷文件是否過時。存在的問題服務器下發的時間難以定義
- Etag/If-None-Match:服務器下發hash值,客戶端請求時帶上hash值,服務器判斷文件是否過時。優先級高
Q:什麼是CND?
- 特色:在不一樣的地點緩存內容,將用戶的請求定向到最合適的緩存服務器上去獲取內容。
- 優勢:解決Internet網絡擁堵情況,提升用戶訪問網絡的響應速度。
Q:預解析DNS
- 背景:DNS預解析會消耗前端的性能,優化建議是:減小DNS的請求次數,進行DNS預解析
- 方式:是讓具備此屬性的域名自動在後臺解析,從而減小用戶的等待時間,提高用戶體驗
Q:如何開啓DNS預解析?
<meta http-equiv = "x-dns-prefetch-control" content="on">
(強制打開a標籤的DNS預解析,https下默認關閉)
<link rel="dns-prefetch" href="//host_name_to_prefetch.com"/>
複製代碼