麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

前端性能優(yōu)化23條

2024-04-27 15:19:39
字體:
來源:轉載
供稿:網(wǎng)友

前端性能優(yōu)化是個巨大的課題,如果要面面俱到的說的話,估計三天三夜說不完。所以我們就從實際的工程應用角度出發(fā),聊我們最常遇見的前端優(yōu)化問題。

1. 減少HTTP請求次數(shù)

盡量合并圖片、CSS、JS。比如加載一個頁面,如果有5個css文件的話,那么會發(fā)出5次http請求,這樣會讓用戶第一次訪問你的頁面的時候會長時間等待。而如果把這個5個文件合成一個的話,就只需要發(fā)出一次http請求,節(jié)省網(wǎng)絡請求時間,加快頁面的加載。

2. 使用CDN

網(wǎng)站上靜態(tài)資源即css、js全都使用cdn分發(fā),圖片亦然。

3. 避免空的src和href

當link標簽的href屬性為空、script標簽的src屬性為空的時候,瀏覽器渲染的時候會把當前頁面的URL作為它們的屬性值,從而把頁面的內容加載進來作為它們的值。所以要避免犯這樣的疏忽。

4. 為文件頭指定Expires

ExiPRes是用來設置文件的過期時間的,一般對css、js、圖片資源有效。 他可以使內容具有緩存性,這樣下回再訪問同樣的資源時就通過瀏覽器緩存區(qū)讀取,不需要再發(fā)出http請求。如下例子:新浪微博的這個css文件的Expires時間是2016-5-04 09:14:14

5. 使用gzip壓縮內容

gzip能夠壓縮任何一個文本類型的響應,包括html,xml,json。大大縮小請求返回的數(shù)據(jù)量。

6. 把CSS放到頂部

網(wǎng)頁上的資源加載時從上網(wǎng)下順序加載的,所以css放在頁面的頂部能夠優(yōu)先渲染頁面,讓用戶感覺頁面加載很快。

7. 把JS放到底部

加載js時會對后續(xù)的資源造成阻塞,必須得等js加載完才去加載后續(xù)的文件 ,所以就把js放在頁面底部最后加載。

8. 避免使用CSS表達式

舉個css表達式的例子

font-color:expression((new Date()).getHours()%3 ? "#fff" : "#aaa");1

這個表達式會持續(xù)的在頁面上計算樣式,影響頁面的性能。并且css表達式只被IE支持。

9. 將CSS和JS放到外部文件中

目的是緩存文件,可以參考原則4。 但有時候為了減少請求,也會直接寫到頁面里,需根據(jù)PV和IP的比例權衡。

10. 權衡DNS查找次數(shù)

減少主機名可以節(jié)省響應時間。但同時,需要注意,減少主機會減少頁面中并行下載的數(shù)量。IE瀏覽器在同一時刻只能從同一域名下載兩個文件。當在一個頁面顯示多張圖片時,IE 用戶的圖片下載速度就會受到影響。所以新浪會搞N個二級域名來放圖片。

11精簡CSS和JS 

這里就涉及到css和js的壓縮了。比如下面的新浪的一個css文件,把空格回車全部去掉,減少文件的大小。現(xiàn)在的壓縮工具有很多,基本主流的前端構建工具都能進行css和js文件的壓縮,如grunt,glup等。

12. 避免跳轉

有種現(xiàn)象會比較坑爹,看起來沒什么差別,其實多次了一次頁面跳轉。比如當URL本該有斜杠(/)卻被忽略掉時。例如,當我們要訪問 http:// baidu.com 時,實際上返回的是一個包含301代碼的跳轉,它指向的是 http:// baidu.com/ (注意末尾的斜杠)。在nginx服務器可以使用rewrite;Apache服務器中可以使用Alias 或者 mod_rewrite或者the DirectorySlash來避免。 另一種是不用域名之間的跳轉, 比如訪問 http:// baidu.com/bbs 跳轉到 http:// bbs.baidu.com/ 。那么可以通過使用Alias或者mod_rewirte建立CNAME(保存一個域名和另外一個域名之間關系的DNS記錄)來替代。

13. 刪除重復的JS和CSS

重復調用腳本,除了增加額外的HTTP請求外,多次運算也會浪費時間。在IE和Firefox中不管腳本是否可緩存,它們都存在重復運算javaScript的問題。

14. 配置ETags

它用來判斷瀏覽器緩存里的元素是否和原來服務器上的一致。比last-modified date更具有彈性,例如某個文件在1秒內修改了10次,Etag可以綜合Inode(文件的索引節(jié)點(inode)數(shù)),MTime(修改時間)和Size來精準的進行判斷,避開UNIX記錄MTime只能精確到秒的問題。 服務器集群使用,可取后兩個參數(shù)。使用ETags減少Web應用帶寬和負載

15. 可緩存的Ajax

異步請求同樣的造成用戶等待,所以使用ajax請求時,要主動告訴瀏覽器如果該請求有緩存就去請求緩存內容。如下代碼片段, cache:true就是顯式的要求如果當前請求有緩存的話,直接使用緩存

$.ajax({ url : 'url', dataType : "json", cache: true, success : function(son, status){}, error : function(){}})1234567

16. 使用GET來完成AJAX請求

當使用xmlhttpRequest時,瀏覽器中的POST方法是一個“兩步走”的過程:首先發(fā)送文件頭,然后才發(fā)送數(shù)據(jù)。因此使用GET獲取數(shù)據(jù)時更加有意義。

17. 減少DOM元素數(shù)量

這是一門大學問,這里可以引申出一堆優(yōu)化的細節(jié)。想要具體研究的可以看后面推薦書籍。總之大原則減少DOM數(shù)量,就會減少瀏覽器的解析負擔。

18. 避免404

比如外鏈的css、js文件出現(xiàn)問題返回404時,會破壞瀏覽器的并行加載。

19. 減少Cookie的大小

Cookie里面別塞那么多東西,因為每個請求都得帶著他跑。

20. 使用無cookie的域

比如CSS、js、圖片等,客戶端請求靜態(tài)文件的時候,減少了 Cookie 的反復傳輸對主域名的影響。

21. 不要使用濾鏡

IE獨有屬性AlphaImageLoader用于修正7.0以下版本中顯示PNG圖片的半透明效果。這個濾鏡的問題在于瀏覽器加載圖片時它會終止內容的呈現(xiàn)并且凍結瀏覽器。在每一個元素(不僅僅是圖片)它都會運算一次,增加了內存開支,因此它的問題是多方面的。 完全避免使用AlphaImageLoader的最好方法就是使用PNG8格式來代替,這種格式能在IE中很好地工作。如果你確實需要使用AlphaImageLoader,請使用下劃線_filter又使之對IE7以上版本的用戶無效。

22. 不要在HTML中縮放圖片

比如你需要的圖片尺寸是50* 50,那就不用用一張500*500的大尺寸圖片,影響加載(說到這里可能有朋友會說了,后臺上傳的圖片我也沒辦法控制他上傳的尺寸啊,這里只是說的最開始做靜態(tài)頁面的時候的一些注意事項,至于后面怎么去操作,那就看網(wǎng)編怎么辦了,盡可能把自己能做的做到最好就行了)

23. 縮小favicon.ico并緩存

以上是Yslow的23個優(yōu)化原則,基本可以涵蓋現(xiàn)在前端大部分的性能優(yōu)化原則了,很多更加geek和精細優(yōu)化方法都是從這些原則里面延伸出來的。

前端優(yōu)化是條漫長的路,不是說一天兩天就能全部做完的。我們可以參考上面的準則去把我們目前能做的都給優(yōu)化了,剩下的更加小的一些細節(jié)點不用太過著急,畢竟也是要考慮優(yōu)化性價比的。比如為了減小一個文件幾個字節(jié)花上個把月根本不值得。這些優(yōu)化的東西都可以在我們的工作中慢慢去通過積累,去通過google解決。

原文地址:http://blog.csdn.net/QQ_32340877/article/details/54947484


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美激情图区 | 亚洲成人福利在线 | 国产午夜精品一区二区三区免费 | xxxx欧美视频 | 在线观看中文字幕av | 日韩在线激情 | v11av在线视频成人 | 性看小视频 | 欧美成人三级大全 | 成人一级毛片 | 姑娘第四集免费看视频 | 男人午夜小视频 | 国产羞羞视频在线免费观看 | 国产毛片毛片毛片 | 12av毛片 | 日韩精品一区二区三区中文 | 爽爽视频免费看 | 毛片a片| 成人情欲视频在线看免费 | 亚洲日本韩国在线观看 | 黄网站免费在线看 | 日韩中文字幕一区二区三区 | 婷婷中文字幕一区二区三区 | 一级α片免费看刺激高潮视频 | 国产精品一区二区三区99 | 成人福利视频网站 | 在线观看麻豆 | 激情在线免费观看 | 一区二区三区日韩精品 | 92看片淫黄大片欧美看国产片 | 国产精品久久久久久久久久久久午夜 | 色综av| 国产午夜免费福利 | 一区二区三级视频 | www.国产一区.com | 在线播放黄色网址 | 久色一区| 国产精品久久久久久久娇妻 | 色操网| 中文字幕在线不卡视频 | 欧美一区二区三区久久精品视 |