從輸入URL到頁面加載完成的過程:css
概括爲:
一、DNS解析
二、TCP鏈接
三、HTTP請求
四、服務端處理,HTTP響應返回
五、拿到目標數據,解析數據並渲染結果,向用戶展現結果
複製代碼
一、webpack性能調優與Gzip原理優化
二、瀏覽器的緩存機制和緩存策略
三、圖片優化——質量和性能的平衡點
四、本地存儲——Cookie、Web Storage、IndexDB
五、CDN的緩存和回源機制
六、服務端渲染
七、瀏覽器運行機制
八、DOM優化原理與實踐
九、Event Loop與異步更新策略
十、迴流和重繪
十一、首屏優化
複製代碼
大小比較:一般地,PNG ≈ JPG > GIF
透明性:PNG > GIF > JPG
色彩豐富程度:JPG > PNG >GIF
兼容程度:GIF ≈ JPG > PNG
複製代碼
1. 優先使用png而不是GIF
2. 壓縮png
3. 去掉jpg的metadata
4. 壓縮gif動畫
5. 嘗試使用png8
6. 避免使用AlphaImageLoader
7. 壓縮動態生成的圖像
8. 使 favicon 更小,可緩存
9. 使用css sprites
複製代碼
經過css定義來加載不一樣的背景bg圖片html
@media only screen and (max-width : 480px) {
.img {background-image: url(bg-480.jpg);}
}
@media only screen and (max-width : 360px) {
.img {background-image: url(bg-360.jpg);}
}
複製代碼
Img的srcset和sizes的方法前端
<img class="img" src="imgbg-320.jpg"
srcset="imgbg-320.jpg 320w, imgbg-360.jpg 360w, imgbg-480px.jpg 480w"
sizes="(max-width: 480px) 480px, 320px">
複製代碼
**html代碼**
<img src="picture" alt="" style="display: none;" v-on:load="getSomething($event)" >
**js代碼**
getSomething (e) {
var target = e.currentTarget;
target.style.opacity = 0;
target.style.display = 'block'
var timer = setInterval(function () {
target.style.opacity = parseFloat(target.style.opacity) + 0.01;
if (parseFloat(target.style.opacity) >= 0.98) {
clearInterval(timer);
}
}, 30);
}
複製代碼