基本規則
- css放到中
- js 放到底部 前面
- 內聯加載快
- 外置能夠被複用,能夠被緩存
瀏覽器併發數
Browser |
HTTP1.0 |
HTTP1.1 |
IE6,7 |
2 |
4 |
IE8 |
6 |
6 |
Firebox |
6 |
6 |
Safari |
4 |
4 |
Chrome |
6 |
6 |
Opera |
4 |
4 |
圖片
-
css 雪碧圖css
優勢html
- 減小加載網頁圖片時對服務器的請求次數
- 能減小圖片的字節,比多張圖片字節更小。
缺點前端
- 維護比較麻煩
- 自適應屏幕下,容易出現背景斷裂
- 元素的位置,須要計算
-
圖片質量優化html5
- 若是是顏色豐富的圖片,通常選擇jpg
- 若是是動畫圖片,通常選擇gif
- 若是須要清晰圖片或透明圖片,通常選擇png 並儘可能使用png 8
-
圖片壓縮(tinypng)web
-
使用更小更快更強,新一代圖片格式 WebP
WebP是谷歌在10年推出一種新型圖片格式,最先也是應用在谷歌產品中,谷歌發佈的Android Studio 2.3正式版中就包括對WebP支持的更新,在實測中,webp 格式比 jpg 格式減少約 20%。這對優化用戶體驗,減小CDN帶寬消耗有很好的效果,但並非全部瀏覽器都支持 webp ,因此爲了使用 webp,須要作一點兼容性的工做。面試
-
base64: 減小http請求,字節小圖可以使用。數據庫
-
iconfont: 優勢太多,適用小圖標,大小顏色可變。經常使用icon無需設計。iconfont庫資源豐富express
-
圖片延遲加載(懶加載)瀏覽器
CSS
- css選擇器: 從右到左匹配
- 儘可能少使用計算屬性,如calc()、expression等
- 不要使用@import
- 重繪和重排 重繪(repaint)、重排(reflow)
repaint:屏幕的一部分進行了重畫,好比某個 css 中改變背景色,元素尺寸沒有變。
reflow:任何一個元素的尺寸發生了變化,須要從新驗證並計算 render tree,就會形成重排。
常見引發重排的操做:緩存
- js添加或刪除元素
- 元素大小發生改變 (border、padding、width)
- 瀏覽器窗口大小改變
- 元素位置改變
- 設置style屬性
- 頁面首次渲染
常見引發重繪的操做:
color、background、background-position、box-shadow、border-radius等。
優化重排和重繪
- 減小DOM操做
- 利用添加class 修改樣式
- 動畫使用CSS動畫,開啓GPU加速
- 不要使用table
- 可讓其脫離文檔流,position:absolute,fixed
JavaScript
- 壓縮、合併、混淆
- 使用async 或 defer
- 減小全局變量使用,慎用閉包
- 使用事件委託
- 避免使用for in 循環
- 服務器端渲染
- 減小DOM操做
能夠參考----雅虎35條軍規
瀏覽器緩存
- 瀏覽器緩存機制
瀏覽器緩存機制是指經過 HTTP 協議頭裏的 Cache-Control(或 Expires)和 Last-Modified(或 Etag)等字段來控制文件緩存的機制。
Cache-Control 用於控制文件在本地緩存有效時長
Last-Modified 是標識文件在服務器上的最新更新時間。
- Web Storage
分爲 sessionStorage 和 localStorage
經過存儲字符串的 Key/Value ,存儲大小爲5MB(Cookies 4KB)
- Web SQL Database
又名html5本地數據庫,用戶能夠像訪問本地文件那樣輕鬆地對本地數據庫進行直接訪問
目前基本已經被放棄, 新一代的前端存儲方案--indexedDB
- Application Cache
離線緩存,可在沒有因特網鏈接時進行訪問
HTML5的離線存儲是基於一個manifest文件(緩存清單文件,後綴爲.appcache)的緩存機制(不是存儲技術),經過這個文件上的清單解析離線存儲資源,這些資源就會像cookie同樣被存儲了下來。以後當網絡在處於離線狀態時,瀏覽器會經過被離線存儲的數據進行頁面展現。
其它
- 靜態文件存儲到CDN上
- 避免重寫向
- 少用iframe,阻塞onload,佔用併發
- 升級http爲http2.0
下次面試官問你時,不要只說表面的那幾個了~