⑴ 如何進行前端優化
1.減少 HTTP 請求....
2.使用 HTTP2
3.使用服務端渲染
4.靜態資源使用 CDN
5.將 CSS 放在文件頭部,JavaScript 文件放 ...
6.使用字體圖標 iconfont 代替圖片圖標
7.善用緩存,不重復載入相同的資源
8.壓縮文件
9.圖片優化
(1).圖片延遲載入
(2). 響應式圖片
(3). 調整圖片大小
(4). 降低圖片質量
(5). 盡可能利用 CSS3 效果代替圖片
(6). 使用 webp 格式的圖片
10. 通過 webpack 按需載入代碼,提取第三庫代碼,減少 ES6 轉為 ES5 的冗餘代碼
11. 減少重繪重排
12. 使用事件委託
13. 注意程序的局部性
14. if-else 對比 switch
15. 查找表
16. 避免頁面卡頓
17. 使用 requestAnimationFrame 來實現視覺變化
18. 使用 Web Workers
19. 使用位操作
20. 不要覆蓋原生方法
21. 降低 CSS 選擇器的復雜性
(1). 瀏覽器讀取選擇器,遵循的原則是從選擇器的右邊到左邊讀取。
(2). CSS 選擇器優先順序
22. 使用 flexbox 而不是較早的布局模型
23. 使用 transform 和 opacity 屬性更改來實現動畫
24. 合理使用規則,避免過度優化
性能優化主要分為兩類:
載入時優化
運行時優化
⑵ 2020年Web前端性能優化需要做哪些
今天小編要跟大家分享的文章是關於2020年Web前端性能優化需要做哪些?性能優化一直以來都是前端工程領域中的一個重要部分。很多資料表明,網站應用的性能優化對於提高用戶留存、轉化率等都有積極影響。可以理解為,提升你的網站性能,就是提升你的業務數據(甚至是業務收入)。
性能優化廣義上包含前端優化和後端優化。後端優化的關注點更多的時候是在增加資源利用率、降低資源成本以及提高穩定性上。相較於後端,前端的性能優化會更直接與用戶的體驗掛鉤。從用戶體驗側來說,前端服務
5s的載入時間優化縮減80%(1s)與後端服務50ms的響應優化縮減80%(10ms)
相比,用戶的體驗提升會更大。因此很多時候,與體驗相關的性能的瓶頸會出現在前端。下面就來和小編一起看一看吧!
一、html文檔結構標簽語義化
1、首先什麼是語義化呢?
語義化是指用合理HTML標記以及其特有的屬性去格式化文檔內容。機器在需要更少的人類干預的情況下能夠研究和收集信息,讓網頁能夠被機器理解,最終讓人類受益。即用正確的標簽做正確的事。
2、語義化的好處或者說存在的意義
①有利於搜索引擎抓取
②結構清晰的HTML在團隊合作中的作用:代碼可讀、便於維護、提高開發效率、快速達成共識、利於二次開發。
③有利於盲人屏幕閱讀器
二、css、js文件數量及大小
優化一般對於css、js是建議使用外聯式來進行導入。我們可以對css、js做相應的規劃也可以減少css、js的個數以減少http請求。同時也要注重減少重復代碼,注重代碼重復利用,以達到用最少的代碼干最多的事。同時當項目要投入上線使用的時候,可以對css、js文件進行壓縮,文件的減小可以加速文件的鏈接導入,以便加速網頁的載入渲染。
可通過使用Webpack,gulp等工具對Js文件進行合並。
三、圖片的數量和大小
多個伺服器請求會對站點的性能產生顯著的影響。對一張圖片進行導入又是一個http請求,因此我們應該減少圖片的導入數量以便減少http請求。此處,我們必須提到一個名詞「css精靈spirit」。css精靈是指包含多個不同的圖標、按鈕或圖形的單個圖像。因此我們可以把多張背景圖片合並為一張然後對背景圖片進行相應的定位。同時使用PNG8格式的圖片相對於GIF來說比較少。而對於內容圖片,可以對其進行適當的壓縮,可以加快文檔內容載入,或者如果是需要用戶下載的圖片,小的圖片可以加快用戶下載的速度。
使用較為廣泛的Web圖片格式有:JPEG/JPG、PNG、WEBP、Base64、SVG。
1.JPEG/JPG
特點是有損壓縮,體積小,載入快,不支持透明。
使用場景:JPG適合用於呈現熱菜豐富的圖片,在日常的開發中,JPG圖片經常作為大的背景圖、輪播圖或是Banner圖。比如兩大電商網站對大圖片的處理,就是對JPG圖片應用場景的最佳寫照。用JPG來呈現大圖片,既可以保留圖片的質量,又不會擔心圖片的體積,是一種比較廣泛使用的方案。
缺點:在處理一些矢量圖形和logo等這些線條感很強、顏色對比強烈的圖片時,認為壓縮就導致圖片模糊非常明顯。另外,JPG圖像不支持透明度處理,透明圖片只能用PNG來呈現了。
2.PNG-8和PNG-24
特點是無損壓縮、質量高、體積大、支持透明
優點:無損壓縮的高保真圖片格式。8和24都是二進制數的位數,8位的PNG支持256中顏色,24位的PNG可以支持1600萬種顏色。在不考慮文件大小隻在乎最佳的顯示效果時,推薦使用PNG-24。但是在適合使用PNG時會優先選擇PNG-8
應用場景:主要用PNG來呈現小的LOGO、顏色簡單對比強烈的圖片或是背景。
3.SVG
特點是文本文件,體積小,不失真,兼容性好
優點:SVG是一種基於XML語法的圖像格式。SVG對圖像的處理不是基於像素,而是基於對圖像的形狀描述。
和JPG、PNG相比較,SVG文件體積更小,可壓縮性更強。SVG作為矢量圖最大的優點在於圖片可以無限放大還不失真,一張SVG圖片可以適配多種解析度。另外SVG是文本文件,可以像寫代碼一樣定義SVG,放在HTML中稱為DOM的一部分。也可以把對圖像的描述寫入以.svg為後綴的文件中,在img標簽中引入即可。
4.WebP
優點:WebP是一款比JPG、PNG等在壓縮方面更加優越的圖片格式,同時也不會影響其圖片質量,使用該格式時最好將同名文件格式化,當檢測瀏覽器不兼容時自動切換jpg格式
缺點:是一個相對較新的技術,所以對於目前市面上的瀏覽器能否完美的兼容,其可用和實用性就變得很現實了,再好的東西如果沒有好的兼容性,也是非常難以普及和被廣泛使用的
5.Base64
優點:減少請求,加快首屏數據顯示。對於jpg格式的圖片,每一個圖片相當於一次http請求,圖片多了的話,伺服器耗性能比較嚴重。而將jpg轉化成base64格式的圖片,則極大地減少了請求數,因為Base是文本格式。
缺點:base64格式圖片比原圖大,佔用更多存儲空間,同時,瀏覽器不會對該資源緩存。
使用方法:background:url(data:image/png;base64,{img_data})
應用場景:一般對於小於10KB大小的圖片進行base64轉碼。
至於動態圖有GIF與APNG:後者APNG這東西是mozilla搞出來的,
它是24位的,而且也是動圖,可以容納1680萬種顏色,也是為了取代GIF,但是....也就火狐支持,IE10和chrome,safari全部不行,
如果說gif圖片是卡片機的話,APNG就是單反
四、有效性驗證
除了根據語義加標記之外,HTML文檔還需要用有效的代碼來編寫,如果代碼是無效的,瀏覽器會嘗試解釋標記本身,有時候會產生錯誤的結果。更糟的是,如果發送具有正確的MIME類型的XHTML文檔,理解XML的瀏覽器將不顯示無效的頁面。因為瀏覽器需要知道要使用什麼DTD(文檔類型定義)才能正確地處理頁面,所以對頁面進行有效性驗證要求有DOCTYPE聲明。
有效性驗證工具徑:
①
W3C驗證器(bookmarklet),這是一小段可以存儲在瀏覽器的書簽或收藏夾中的Javascript。單擊這個書簽就會觸發Javascript動作。
②可以訪問http://validator.w3.org/,通過輸入自己的URL來對自己的站點來進行在線驗證。
③使用firefox瀏覽器的可以下載插件FirefoxWebDeveloperExtension
五、雅虎的Web優化最佳實踐
1、內容優化
①盡量減少HTTP請求:常見方法包括合並多個CSS文件和JavaScript文件,利用CSSSprites整合圖像,Image
map(圖像中不同的區域設置不同的鏈接),內聯圖象(使用data:URLscheme在實際的頁面嵌入圖像數據)等。
②減少DNS查找,一般dns查找需要花費20-120ms,Windows的DNS緩存,可以通過ipconfig/displaydns
這個命令來查看。
③避免重定向
④使Ajax可緩存
⑤延遲載入組件:考慮哪些內容是頁面呈現時所必需首先載入的、哪些內容和結構可以稍後再載入,根據這個優先順序進行設定。
⑥
預載入組件:預載入是在瀏覽器空閑時請求將來可能會用到的頁面內容(如圖像、樣式表和腳本)。當用戶要訪問下一個頁面時,頁面中的內容大部分已經載入到緩存中了,因此可以大大改善訪問速度。
⑦減少DOM元素數量:頁面中存在大量DOM元素,會導致JavaScript遍歷DOM的效率變慢。
⑧根據域名劃分頁面內容:把頁面內容劃分成若幹部分可以使你最大限度地實現平行下載。但要確保你使用的域名數量在2個到4個之間(否則與第2條沖突)。
⑨最小化iframe的數量:iframes
提供了一個簡單的方式把一個網站的內容嵌入到另一個網站中。但其創建速度比其他包括JavaScript和CSS的DOM元素的創建慢了1-2個數量級。
⑩
避免404:HTTP請求時間消耗是很大的,因此使用HTTP請求來獲得一個沒有用處的響應(例如404沒有找到頁面)是完全沒有必要的,它只會降低用戶體驗而不會有一點好處。
2、伺服器優化
①使用內容分發網路(CDN):把你的網站內容分散到多個、處於不同地域位置的伺服器上可以加快下載速度。
添加Expires或Cache-Control信息頭:對於靜態內容,可設置文件頭過期時間Expires的值為「Never
expire(永不過期)」;對於動態內容,可使用恰當的Cache-Control文件頭來幫助瀏覽器進行有條件的請求。
②Gzip壓縮
③設置ETag:ETags(Entity
tags,實體標簽)是Web伺服器和瀏覽器用於判斷瀏覽器緩存中的內容和伺服器中的原始內容是否匹配的一種機制。
④
提前刷新緩沖區:當用戶請求一個頁面時,伺服器會花費200到500毫秒用於後台組織HTML文件。在這期間,瀏覽器會一直空閑等待數據返回。在PHP中,可以使用flush()方法,它允許你把已經編譯的好的部分HTML響應文件先發送給瀏覽器,這時瀏覽器就會可以下載文件中的內容(腳本等)而後台同⑤時處理剩餘的HTML頁面。
⑥
對Ajax請求使用GET方法:當使用XMLHttpRequest時,瀏覽器中的POST方法會首先發送文件頭,然後才發送數據。因此使用GET最為恰當。
⑦避免空的圖像src
3、Cookie優化
①減小cookie大小:去除不必要的coockie,並使coockie體積盡量小以減少對用戶響應的影響
②
針對Web組件使用域名無關的Cookie:對靜態組件的Cookie讀取是一種浪費,使用另一個無Cookie的域名來存放靜態組件是一個好方法,或者也可以在Cookie中只存放帶www的域名。
4、CSS優化
①將CSS代碼放在HTML頁面的頂部
②避免使用CSS表達式:CSS表達式在執行時候的運算量非常大,會對頁面性能產生大的影響
③使用來代替@import
④避免使用Filters:IE獨有屬性AlphaImageLoader用於修正IE
7以下版本中PNG圖片的半透明效果,但它的問題在於瀏覽器載入圖片時它會終止內容的呈現並且凍結瀏覽器。
5、JavaScript優化
①將JavaScript腳本放在頁面的底部
②
將JavaScript和CSS作為外部文件來引用:在實際應用中使用外部文件可以提高頁面速度,因為JavaScript和CSS文件都能在瀏覽器中產生緩存。
③縮小JavaScript和CSS
④刪除重復的腳本
⑤最小化DOM的訪問:使用JavaScript訪問DOM元素比較慢
⑥開發智能的事件處理程序
6、圖像優化
①優化圖片大小
②通過CSSSprites優化圖片
③不要在HTML中使用縮放圖片
④favicon.ico要小而且可緩存
7、針對移動優化
①保持組件大小在25KB以下:主要是因為iPhone不能緩存大於25K的文件(注意這里指的是解壓縮後的大小)。
②將組件打包成為一個復合文檔:把頁面內容打包成復合文本就如同帶有多附件的Email,它能夠使你在一個HTTP請求中獲取多個組件。
以上就是小編今天為大家分享的關於2020年Web前端性能優化需要做哪些的文章,希望本篇文章能夠對正在從事Web前端工作的小夥伴們有所幫助,想要了解更多Web前端知識記得關注北大青鳥Web培訓官網。最後祝願小夥伴們工作順利,成為一名優秀的Web前端工程師。
⑶ Web前端入門知識之Web前端性能優化
今天小編要跟大家分享的文章是關於Web前端入門知識之Web前端性能優化。性能優化一直以來都是前端工程領域中的一個重要部分。很多資料表明,網站應用的性能優化對於提高用戶留存、轉化率等都有積極影響。可以理解為,提升你的網站性能,就是提升你的業務數據(甚至是業務收入)。
性能優化廣義上包含前端優化和後端優化。後端優化的關注點更多的時候是在增加資源利用率、降低資源成本以及提高穩定性上。相較於後端,前端的性能優化會更直接與用戶的體驗掛鉤。從用戶體驗側來說,前端服務
5s的載入時間優化縮減80%(1s)與後端服務50ms的響應優化縮減80%(10ms)
相比,用戶的體驗提升會更大。因此很多時候,與體驗相關的性能的瓶頸會出現在前端。
作為前端工程師,大家其實都具備一定的性能優化意識,同時也有自己的優化「武器庫」,例如懶載入、資源合並、避免reflow
等等。雖然大家對性能優化都有自己的思路,不過大多是分散在某幾個點,較難形成一個完整的體系。下面來和小編一起看一看web前端性能優化該怎麼做。
一、html文檔結構標簽語義化
1、首先什麼是語義化呢?
語義化是指用合理HTML標記以及其特有的屬性去格式化文檔內容。機器在需要更少的人類干預的情況下能夠研究和收集信息,讓網頁能夠被機器理解,最終讓人類受益。即用正確的標簽做正確的事。
2、語義化的好處或者說存在的意義
①有利於搜索引擎抓取
②結構清晰的HTML在團隊合作中的作用:代碼可讀、便於維護、提高開發效率、快速達成共識、利於二次開發。
③有利於盲人屏幕閱讀器
二、css、js文件數量及大小
優化一般對於css、js是建議使用外聯式來進行導入。我們可以對css、js做相應的規劃也可以減少css、js的個數以減少http請求。同時也要注重減少重復代碼,注重代碼重復利用,以達到用最少的代碼干最多的事。同時當項目要投入上線使用的時候,可以對css、js文件進行壓縮,文件的減小可以加速文件的鏈接導入,以便加速網頁的載入渲染。
可通過使用webpack,gulp等工具對Js文件進行合並。
三、圖片的數量和大小
多個伺服器請求會對站點的性能產生顯著的影響。對一張圖片進行導入又是一個http請求,因此我們應該減少圖片的導入數量以便減少http請求。此處,我們必須提到一個名詞「css精靈spirit」。css精靈是指包含多個不同的圖標、按鈕或圖形的單個圖像。因此我們可以把多張背景圖片合並為一張然後對背景圖片進行相應的定位。同時使用PNG8格式的圖片相對於GIF來說比較少。而對於內容圖片,可以對其進行適當的壓縮,可以加快文檔內容載入,或者如果是需要用戶下載的圖片,小的圖片可以加快用戶下載的速度。
使用較為廣泛的web圖片格式有:JPEG/JPG、PNG、WEBP、Base64、SVG。
1.JPEG/JPG
特點是有損壓縮,體積小,載入快,不支持透明。
使用場景:JPG適合用於呈現熱菜豐富的圖片,在日常的開發中,JPG圖片經常作為大的背景圖、輪播圖或是Banner圖。比如兩大電商網站對大圖片的處理,就是對JPG圖片應用場景的最佳寫照。用JPG來呈現大圖片,既可以保留圖片的質量,又不會擔心圖片的體積,是一種比較廣泛使用的方案。
缺點:在處理一些矢量圖形和logo等這些線條感很強、顏色對比強烈的圖片時,認為壓縮就導致圖片模糊非常明顯。另外,JPG圖像不支持透明度處理,透明圖片只能用PNG來呈現了。
2.PNG-8和PNG-24
特點是無損壓縮、質量高、體積大、支持透明
優點:無損壓縮的高保真圖片格式。8和24都是二進制數的位數,8位的PNG支持256中顏色,24位的PNG可以支持1600萬種顏色。在不考慮文件大小隻在乎最佳的顯示效果時,推薦使用PNG-24。但是在適合使用PNG時會優先選擇PNG-8
應用場景:主要用PNG來呈現小的LOGO、顏色簡單對比強烈的圖片或是背景。
3.SVG
特點是文本文件,體積小,不失真,兼容性好
優點:SVG是一種基於XML語法的圖像格式。SVG對圖像的處理不是基於像素,而是基於對圖像的形狀描述。
和JPG、PNG相比較,SVG文件體積更小,可壓縮性更強。SVG作為矢量圖最大的優點在於圖片可以無限放大還不失真,一張SVG圖片可以適配多種解析度。另外SVG是文本文件,可以像寫代碼一樣定義SVG,放在HTML中稱為DOM的一部分。也可以把對圖像的描述寫入以.svg為後綴的文件中,在img標簽中引入即可。
4.WebP
優點:WebP是一款比JPG、PNG等在壓縮方面更加優越的圖片格式,同時也不會影響其圖片質量,使用該格式時最好將同名文件格式化,當檢測瀏覽器不兼容時自動切換jpg格式
缺點:是一個相對較新的技術,所以對於目前市面上的瀏覽器能否完美的兼容,其可用和實用性就變得很現實了,再好的東西如果沒有好的兼容性,也是非常難以普及和被廣泛使用的
5.Base64
優點:減少請求,加快首屏數據顯示。對於jpg格式的圖片,每一個圖片相當於一次http請求,圖片多了的話,伺服器耗性能比較嚴重。而將jpg轉化成base64格式的圖片,則極大地減少了請求數,因為Base是文本格式。
缺點:base64格式圖片比原圖大,佔用更多存儲空間,同時,瀏覽器不會對該資源緩存。
使用方法:background:url(data:image/png;base64,{img_data})
應用場景:一般對於小於10KB大小的圖片進行base64轉碼。
至於動態圖有GIF與APNG:後者APNG這東西是mozilla搞出來的,
它是24位的,而且也是動圖,可以容納1680萬種顏色,也是為了取代GIF,但是....也就火狐支持,IE10和chrome,safari全部不行,
如果說gif圖片是卡片機的話,APNG就是單反
四、有效性驗證
除了根據語義加標記之外,HTML文檔還需要用有效的代碼來編寫,如果代碼是無效的,瀏覽器會嘗試解釋標記本身,有時候會產生錯誤的結果。更糟的是,如果發送具有正確的MIME類型的XHTML文檔,理解XML的瀏覽器將不顯示無效的頁面。因為瀏覽器需要知道要使用什麼DTD(文檔類型定義)才能正確地處理頁面,所以對頁面進行有效性驗證要求有DOCTYPE聲明。
有效性驗證工具徑:
①
W3C驗證器(bookmarklet),這是一小段可以存儲在瀏覽器的書簽或收藏夾中的Javascript。單擊這個書簽就會觸發Javascript動作。
②可以訪問http://validator.w3.org/,通過輸入自己的URL來對自己的站點來進行在線驗證。
③使用firefox瀏覽器的可以下載插件FirefoxWebDeveloperExtension
五、雅虎的Web優化最佳實踐
1、內容優化
①盡量減少HTTP請求:常見方法包括合並多個CSS文件和JavaScript文件,利用CSSSprites整合圖像,Image
map(圖像中不同的區域設置不同的鏈接),內聯圖象(使用data:URLscheme在實際的頁面嵌入圖像數據)等。
②減少DNS查找,一般dns查找需要花費20-120ms,Windows的DNS緩存,可以通過ipconfig/displaydns
這個命令來查看。
③避免重定向
④使Ajax可緩存
⑤延遲載入組件:考慮哪些內容是頁面呈現時所必需首先載入的、哪些內容和結構可以稍後再載入,根據這個優先順序進行設定。
⑥
預載入組件:預載入是在瀏覽器空閑時請求將來可能會用到的頁面內容(如圖像、樣式表和腳本)。當用戶要訪問下一個頁面時,頁面中的內容大部分已經載入到緩存中了,因此可以大大改善訪問速度。
⑦減少DOM元素數量:頁面中存在大量DOM元素,會導致JavaScript遍歷DOM的效率變慢。
⑧根據域名劃分頁面內容:把頁面內容劃分成若幹部分可以使你最大限度地實現平行下載。但要確保你使用的域名數量在2個到4個之間(否則與第2條沖突)。
⑨最小化iframe的數量:iframes
提供了一個簡單的方式把一個網站的內容嵌入到另一個網站中。但其創建速度比其他包括JavaScript和CSS的DOM元素的創建慢了1-2個數量級。
⑩
避免404:HTTP請求時間消耗是很大的,因此使用HTTP請求來獲得一個沒有用處的響應(例如404沒有找到頁面)是完全沒有必要的,它只會降低用戶體驗而不會有一點好處。
2、伺服器優化
①使用內容分發網路(CDN):把你的網站內容分散到多個、處於不同地域位置的伺服器上可以加快下載速度。
添加Expires或Cache-Control信息頭:對於靜態內容,可設置文件頭過期時間Expires的值為「Never
expire(永不過期)」;對於動態內容,可使用恰當的Cache-Control文件頭來幫助瀏覽器進行有條件的請求。
②Gzip壓縮
③設置ETag:ETags(Entity
tags,實體標簽)是web伺服器和瀏覽器用於判斷瀏覽器緩存中的內容和伺服器中的原始內容是否匹配的一種機制。
④
提前刷新緩沖區:當用戶請求一個頁面時,伺服器會花費200到500毫秒用於後台組織HTML文件。在這期間,瀏覽器會一直空閑等待數據返回。在PHP中,可以使用flush()方法,它允許你把已經編譯的好的部分HTML響應文件先發送給瀏覽器,這時瀏覽器就會可以下載文件中的內容(腳本等)而後台同⑤時處理剩餘的HTML頁面。
⑥
對Ajax請求使用GET方法:當使用XMLHttpRequest時,瀏覽器中的POST方法會首先發送文件頭,然後才發送數據。因此使用GET最為恰當。
⑦避免空的圖像src
3、Cookie優化
①減小cookie大小:去除不必要的coockie,並使coockie體積盡量小以減少對用戶響應的影響
②
針對Web組件使用域名無關的Cookie:對靜態組件的Cookie讀取是一種浪費,使用另一個無Cookie的域名來存放靜態組件是一個好方法,或者也可以在Cookie中只存放帶www的域名。
4、CSS優化
①將CSS代碼放在HTML頁面的頂部
②避免使用CSS表達式:CSS表達式在執行時候的運算量非常大,會對頁面性能產生大的影響
③使用來代替@import
④避免使用Filters:IE獨有屬性AlphaImageLoader用於修正IE
7以下版本中PNG圖片的半透明效果,但它的問題在於瀏覽器載入圖片時它會終止內容的呈現並且凍結瀏覽器。
5、JavaScript優化
①將JavaScript腳本放在頁面的底部
②
將JavaScript和CSS作為外部文件來引用:在實際應用中使用外部文件可以提高頁面速度,因為JavaScript和CSS文件都能在瀏覽器中產生緩存。
③縮小JavaScript和CSS
④刪除重復的腳本
⑤最小化DOM的訪問:使用JavaScript訪問DOM元素比較慢
⑥開發智能的事件處理程序
6、圖像優化
①優化圖片大小
②通過CSSSprites優化圖片
③不要在HTML中使用縮放圖片
④favicon.ico要小而且可緩存
7、針對移動優化
①保持組件大小在25KB以下:主要是因為iPhone不能緩存大於25K的文件(注意這里指的是解壓縮後的大小)。
②將組件打包成為一個復合文檔:把頁面內容打包成復合文本就如同帶有多附件的Email,它能夠使你在一個HTTP請求中獲取多個組件。
以上就是小編今天為大家分享的關於Web前端入門知識之Web前端性能優化的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助,想要了解更多web前端知識記得關注北大青鳥web培訓官網,最後祝願小夥伴們工作順利,成為一名優秀的web前端工作順利。
⑷ 常用的前端性能優化方法有哪些
1、減少http請求,合理設置HTTP緩存
2、使用瀏覽器緩存
3、啟用壓縮
4、CSS Sprites,合並 CSS圖片,減少請求數
5、CSS放在頁面最上部,javascript放在頁面最下面
⑸ Web前端工程師要掌握的Web前端性能優化方法
今天小編要跟大家分享的文章是關於Web前端工程師要掌握的Web前端性能優化方法。正在從事Web前端工作的小夥伴們來和小編一起看一看吧,希望本篇文章能夠對正在從事Web前端工作的小夥伴們有所幫助。
Web前端需要性能優化么?
性能優化一直以來都是前端工程領域中的一個重要部分。很多資料表明,網站應用的性能優化對於提高用戶留存、轉化率等都有積極影響。可以理解為,提升你的網站性能,就是提升你的業務數據(甚至是業務收入)。
性能優化廣義上包含前端優化和後端優化。後端優化的關注點更多的時候是在增加資源利用率、降低資源成本以及提高穩定性上。相較於後端,前端的性能優化會更直接與用戶的體驗掛鉤。從用戶體驗側來說,前端服務
5s的載入時間優化縮減80%(1s)與後端服務50ms的響應優化縮減80%(10ms)
相比,用戶的體驗提升會更大。因此很多時候,與體驗相關的性能的瓶頸會出現在前端。
我和一些同學接觸的過程中,發現作為前端工程師,大家其實都具備一定的性能優化意識,同時也有自己的優化「武器庫」,例如懶載入、資源合並、避免reflow
等等。雖然大家對性能優化都有自己的思路,不過大多是分散在某幾個點,較難形成一個完整的體系。
一、html文檔結構標簽語義化
1、首先什麼是語義化呢?
語義化是指用合理HTML標記以及其特有的屬性去格式化文檔內容。機器在需要更少的人類干預的情況下能夠研究和收集信息,讓網頁能夠被機器理解,最終讓人類受益。即用正確的標簽做正確的事。
2、語義化的好處或者說存在的意義
①有利於搜索引擎抓取
②結構清晰的HTML在團隊合作中的作用:代碼可讀、便於維護、提高開發效率、快速達成共識、利於二次開發。
③有利於盲人屏幕閱讀器
二、css、js文件數量及大小
優化一般對於css、js是建議使用外聯式來進行導入。我們可以對css、js做相應的規劃也可以減少css、js的個數以減少http請求。同時也要注重減少重復代碼,注重代碼重復利用,以達到用最少的代碼干最多的事。同時當項目要投入上線使用的時候,可以對css、js文件進行壓縮,文件的減小可以加速文件的鏈接導入,以便加速網頁的載入渲染。
可通過使用Webpack,gulp等工具對Js文件進行合並。
三、圖片的數量和大小
多個伺服器請求會對站點的性能產生顯著的影響。對一張圖片進行導入又是一個http請求,因此我們應該減少圖片的導入數量以便減少http請求。此處,我們必須提到一個名詞「css精靈spirit」。css精靈是指包含多個不同的圖標、按鈕或圖形的單個圖像。因此我們可以把多張背景圖片合並為一張然後對背景圖片進行相應的定位。同時使用PNG8格式的圖片相對於GIF來說比較少。而對於內容圖片,可以對其進行適當的壓縮,可以加快文檔內容載入,或者如果是需要用戶下載的圖片,小的圖片可以加快用戶下載的速度。
使用較為廣泛的Web圖片格式有:JPEG/JPG、PNG、WEBP、Base64、SVG。
1.JPEG/JPG
特點是有損壓縮,體積小,載入快,不支持透明。
使用場景:JPG適合用於呈現熱菜豐富的圖片,在日常的開發中,JPG圖片經常作為大的背景圖、輪播圖或是Banner圖。比如兩大電商網站對大圖片的處理,就是對JPG圖片應用場景的最佳寫照。用JPG來呈現大圖片,既可以保留圖片的質量,又不會擔心圖片的體積,是一種比較廣泛使用的方案。
缺點:在處理一些矢量圖形和logo等這些線條感很強、顏色對比強烈的圖片時,認為壓縮就導致圖片模糊非常明顯。另外,JPG圖像不支持透明度處理,透明圖片只能用PNG來呈現了。
2.PNG-8和PNG-24
特點是無損壓縮、質量高、體積大、支持透明
優點:無損壓縮的高保真圖片格式。8和24都是二進制數的位數,8位的PNG支持256中顏色,24位的PNG可以支持1600萬種顏色。在不考慮文件大小隻在乎最佳的顯示效果時,推薦使用PNG-24。但是在適合使用PNG時會優先選擇PNG-8
應用場景:主要用PNG來呈現小的LOGO、顏色簡單對比強烈的圖片或是背景。
3.SVG
特點是文本文件,體積小,不失真,兼容性好
優點:SVG是一種基於XML語法的圖像格式。SVG對圖像的處理不是基於像素,而是基於對圖像的形狀描述。
和JPG、PNG相比較,SVG文件體積更小,可壓縮性更強。SVG作為矢量圖最大的優點在於圖片可以無限放大還不失真,一張SVG圖片可以適配多種解析度。另外SVG是文本文件,可以像寫代碼一樣定義SVG,放在HTML中稱為DOM的一部分。也可以把對圖像的描述寫入以.svg為後綴的文件中,在img標簽中引入即可。
4.WebP
優點:WebP是一款比JPG、PNG等在壓縮方面更加優越的圖片格式,同時也不會影響其圖片質量,使用該格式時最好將同名文件格式化,當檢測瀏覽器不兼容時自動切換jpg格式
缺點:是一個相對較新的技術,所以對於目前市面上的瀏覽器能否完美的兼容,其可用和實用性就變得很現實了,再好的東西如果沒有好的兼容性,也是非常難以普及和被廣泛使用的
5.Base64
優點:減少請求,加快首屏數據顯示。對於jpg格式的圖片,每一個圖片相當於一次http請求,圖片多了的話,伺服器耗性能比較嚴重。而將jpg轉化成base64格式的圖片,則極大地減少了請求數,因為Base是文本格式。
缺點:base64格式圖片比原圖大,佔用更多存儲空間,同時,瀏覽器不會對該資源緩存。
使用方法:background:url(data:image/png;base64,{img_data})
應用場景:一般對於小於10KB大小的圖片進行base64轉碼。
至於動態圖有GIF與APNG:後者APNG這東西是mozilla搞出來的,
它是24位的,而且也是動圖,可以容納1680萬種顏色,也是為了取代GIF,但是....也就火狐支持,IE10和chrome,safari全部不行,
如果說gif圖片是卡片機的話,APNG就是單反
四、有效性驗證
除了根據語義加標記之外,HTML文檔還需要用有效的代碼來編寫,如果代碼是無效的,瀏覽器會嘗試解釋標記本身,有時候會產生錯誤的結果。更糟的是,如果發送具有正確的MIME類型的XHTML文檔,理解XML的瀏覽器將不顯示無效的頁面。因為瀏覽器需要知道要使用什麼DTD(文檔類型定義)才能正確地處理頁面,所以對頁面進行有效性驗證要求有DOCTYPE聲明。
有效性驗證工具徑:
①
W3C驗證器(bookmarklet),這是一小段可以存儲在瀏覽器的書簽或收藏夾中的Javascript。單擊這個書簽就會觸發Javascript動作。
②可以訪問http://validator.w3.org/,通過輸入自己的URL來對自己的站點來進行在線驗證。
③使用firefox瀏覽器的可以下載插件FirefoxWebDeveloperExtension
五、雅虎的Web優化最佳實踐
1、內容優化
①盡量減少HTTP請求:常見方法包括合並多個CSS文件和JavaScript文件,利用CSSSprites整合圖像,Image
map(圖像中不同的區域設置不同的鏈接),內聯圖象(使用data:URLscheme在實際的頁面嵌入圖像數據)等。
②減少DNS查找,一般dns查找需要花費20-120ms,Windows的DNS緩存,可以通過ipconfig/displaydns
這個命令來查看。
③避免重定向
④使Ajax可緩存
⑤延遲載入組件:考慮哪些內容是頁面呈現時所必需首先載入的、哪些內容和結構可以稍後再載入,根據這個優先順序進行設定。
⑥
預載入組件:預載入是在瀏覽器空閑時請求將來可能會用到的頁面內容(如圖像、樣式表和腳本)。當用戶要訪問下一個頁面時,頁面中的內容大部分已經載入到緩存中了,因此可以大大改善訪問速度。
⑦減少DOM元素數量:頁面中存在大量DOM元素,會導致JavaScript遍歷DOM的效率變慢。
⑧根據域名劃分頁面內容:把頁面內容劃分成若幹部分可以使你最大限度地實現平行下載。但要確保你使用的域名數量在2個到4個之間(否則與第2條沖突)。
⑨最小化iframe的數量:iframes
提供了一個簡單的方式把一個網站的內容嵌入到另一個網站中。但其創建速度比其他包括JavaScript和CSS的DOM元素的創建慢了1-2個數量級。
⑩
避免404:HTTP請求時間消耗是很大的,因此使用HTTP請求來獲得一個沒有用處的響應(例如404沒有找到頁面)是完全沒有必要的,它只會降低用戶體驗而不會有一點好處。
2、伺服器優化
①使用內容分發網路(CDN):把你的網站內容分散到多個、處於不同地域位置的伺服器上可以加快下載速度。
添加Expires或Cache-Control信息頭:對於靜態內容,可設置文件頭過期時間Expires的值為「Never
expire(永不過期)」;對於動態內容,可使用恰當的Cache-Control文件頭來幫助瀏覽器進行有條件的請求。
②Gzip壓縮
③設置ETag:ETags(Entity
tags,實體標簽)是Web伺服器和瀏覽器用於判斷瀏覽器緩存中的內容和伺服器中的原始內容是否匹配的一種機制。
④
提前刷新緩沖區:當用戶請求一個頁面時,伺服器會花費200到500毫秒用於後台組織HTML文件。在這期間,瀏覽器會一直空閑等待數據返回。在PHP中,可以使用flush()方法,它允許你把已經編譯的好的部分HTML響應文件先發送給瀏覽器,這時瀏覽器就會可以下載文件中的內容(腳本等)而後台同⑤時處理剩餘的HTML頁面。
⑥
對Ajax請求使用GET方法:當使用XMLHttpRequest時,瀏覽器中的POST方法會首先發送文件頭,然後才發送數據。因此使用GET最為恰當。
⑦避免空的圖像src
3、Cookie優化
①減小cookie大小:去除不必要的coockie,並使coockie體積盡量小以減少對用戶響應的影響
②
針對Web組件使用域名無關的Cookie:對靜態組件的Cookie讀取是一種浪費,使用另一個無Cookie的域名來存放靜態組件是一個好方法,或者也可以在Cookie中只存放帶www的域名。
4、CSS優化
①將CSS代碼放在HTML頁面的頂部
②避免使用CSS表達式:CSS表達式在執行時候的運算量非常大,會對頁面性能產生大的影響
③使用來代替@import
④避免使用Filters:IE獨有屬性AlphaImageLoader用於修正IE
7以下版本中PNG圖片的半透明效果,但它的問題在於瀏覽器載入圖片時它會終止內容的呈現並且凍結瀏覽器。
5、JavaScript優化
①將JavaScript腳本放在頁面的底部
②
將JavaScript和CSS作為外部文件來引用:在實際應用中使用外部文件可以提高頁面速度,因為JavaScript和CSS文件都能在瀏覽器中產生緩存。
③縮小JavaScript和CSS
④刪除重復的腳本
⑤最小化DOM的訪問:使用JavaScript訪問DOM元素比較慢
⑥開發智能的事件處理程序
6、圖像優化
①優化圖片大小
②通過CSSSprites優化圖片
③不要在HTML中使用縮放圖片
④favicon.ico要小而且可緩存
7、針對移動優化
①保持組件大小在25KB以下:主要是因為iPhone不能緩存大於25K的文件(注意這里指的是解壓縮後的大小)。
②將組件打包成為一個復合文檔:把頁面內容打包成復合文本就如同帶有多附件的Email,它能夠使你在一個HTTP請求中獲取多個組件。
以上就是小編今天為大家分享的關於Web前端工程師要掌握的Web前端性能優化方法的文章,希望本篇文章能夠對正在從事Web前端工作的小夥伴們有所幫,想要了解更多Web前端工作的小夥伴們記得關注北大青鳥Web培訓官網最後祝願小夥伴們工作順利!
⑹ 前端開發,頁面優化,性能優化有哪些方面
常用的優化有兩部分
第一:面向內容的優化
1. 減少 HTTP 請求
2. 減少 DNS 查找
3. 避免重定向
4. 使用 Ajax 緩存
5. 延遲載入組件
6. 預先載入組件
7. 減少 DOM 元素數量
8. 切分組件到多個域
9. 最小化 iframe 的數量
10. 不要出現http 404 錯誤
第二:面向 Server
1. 縮小 Cookie
2. 針對 Web 組件使用域名無關性的
⑺ Web前端開發要學習的網頁優化技巧有哪些
今天小編要跟大家分享的文章是關於Web前端開發要學習的網頁優化技巧有哪些?現在,有越來越多所謂的「教程」來幫助我們提高網站的易用性。小編收集了一些在Web開發中容易出錯和被忽略的小問題,並且提供了參考的解決方案,以便於幫助Web開發者更好的完善網站。下面來和小編一起看一看吧!
通過避免下面這些小錯誤,可以使得我們的網站變得更為友好。
錯誤1:表單的label標簽跟表單欄位沒有關聯
利用「for」屬性允許用戶單擊label也可以選中表單中的內容。這可以擴大復選框和單選框的點擊區域,非常實用。
錯誤2:logo圖片沒有鏈接到主頁
點擊網站logo就能轉到主頁已經成為了網民的條件反射。此外,值得一提的是,logo是指定放於左上角的。
錯誤3:不能區分是否已經訪問過該鏈接
訪問過的連接狀態應該與沒有訪問過的有所區別,以便於讓用戶直觀地明白哪個鏈接已經點擊過了。
錯誤4:沒有突出當前選中激活的表單項
可以使用「focus」展現選中的文本區域處於動態中。也可以使用CSS樣式,例如,突出的邊框或者略有變化的背景色。
錯誤5:圖片中沒有alt圖片描述信息
你可能會覺得無關緊要,但是這是必要的!請記住添加一個說明性的alt屬性到你的圖片上,除非這張圖片很明顯是用作裝飾的,那麼這個alt屬性才可以為空(但仍然存在!)。如果是使用圖片作為鏈接點,那麼可以輸入鏈接地址。
錯誤6:背景圖片後面沒有設置背景色
在內容文字後面使用背景圖片是很普遍的,但是我們同時要考慮到如果背景圖片被客戶端所禁用的情況,所以最好背景圖後面再設置一個相似色調的背景顏色,以免文本變得不可閱讀。
錯誤7:不一致的界面設計
矯枉過正大概就是這個意思了。有些設計師為了提高網頁水平,故而為網站中的每個網頁都創建了不同的設計。但是這只會混淆用戶,使他們不知所措。記住,無論一個網站有多麼的優秀和有吸引力,如果它的整體外觀和感覺並不一致,那麼用戶就很難記住它。建議如下:
1、每個頁面使用標准一致的模板鏈接到網站的主要部分。
2、關鍵字要簡單。設計應該美觀簡潔,這樣用戶在使用時才不會困惑。
錯誤8:下劃線的內容並不是鏈接
眾所周知,帶有下劃線的內容很容易被當成鏈接。不要隨隨便便地在文字中來一個下劃線,這樣會讓人困惑。如果真的想強調某個單詞,不妨試試加粗或者加大字體。
最後總結
通過識別這些常見的錯誤,web開發人員可以避免很多讓其他人飽受煎熬的挫折。我們不僅需要承認錯誤,還應該清楚錯誤的影響,並採取措施避免錯誤,這樣才能有更好的開發表現——並有信心完成任務!
以上就是小編今天為大家分享的關於Web前端開發要學習的網頁優化技巧有哪些的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助,想要了解更多web前端知識記得關注北大青鳥web培訓官網。最後祝願小夥伴們工作順利!
⑻ 前端怎麼優化大數據頁面
來源:前端的性能優化都有哪些東西?作者:野次前端性能優化是個巨大的課題,如果要面面俱到的
⑼ 怎麼優化前端代碼,讓百度高效識別移動頁面
優化前端代碼有一下幾點:
(1)CSS代碼簡寫。這里說的簡寫主要解決的問題是,網站代碼冗餘,去除不必要的空格等等。如果可以用一句表達的語言,就不要多出幾行代碼,符合W3C標准。
(2)同屬性提出
如果2個樣式帶有同樣的屬性,可以把同屬性單獨提出處理。例如A樣式和B樣式的字體顏色、大小、邊框都一樣,那麼就可以考慮提出。
(3)結構清晰優化
網站代碼清晰是指,把代碼分區處理:網站頭部、網站身體,網站底部,3個區域進行不同的布局。不同區間的代碼要區別總的選擇器,選擇不同顏色加以區分隔開處理。
代碼簡化,爬行的目錄層次淺,這樣加強了搜索引擎對代碼的友好程度,進而提高網站的權重,關鍵詞才會有良好的排名。如果代碼冗餘,煩瑣,搜索引擎也就關注的少了。
⑽ 前端做一個畫布遮擋頁面怎麼定位頁面元素
定位頁面元素有很多種方法。
1、通過元素的id屬性來定位元素——id是唯一標識(每個id都是不一樣的)。
2、通過元素的name屬性來定位元素,name屬性不是絕對唯一的(一個頁面內可能存在多個元素的name屬性是相同的)如果name屬性的值wd是唯一的,用find_element_by_name定位元素,返回值是一個值,如果name屬性的值wd不是唯一的,用find_elements_by_name定位元素,返回符合條件的多個值,保存在列表中,即返回的是列表。
3、通過元素的class屬性來定位元素,class屬性不是絕對唯一的(一個頁面內可能存在多個元素的class屬性是相同的),如果class屬性的值s_ipt是唯一的,用find_element_by_class_name定位元素,返回值是一個值。如果class屬性的值s_ipt不是唯一的,用find_elements_by_class_name定位元素,返回符合條件的多個值,保存在列表中,即返回的是列表。
4、通過元素的標簽名tag來定位元素,標簽名不是絕對唯一的(一個頁面內可能存在多個相同的標簽名),如果標簽名是唯一的,用find_element_by_tag_name定位元素,返回值是一個值。如果標簽名不是唯一的,用find_elements_by_tag_name定位元素,返回符合條件的多個值,保存在列表中,即返回的是列表。