當前位置:首頁 » 網頁前端 » 前端頁面性能優化
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端頁面性能優化

發布時間: 2022-02-13 15:08:27

Ⅰ 如何對前端性能進行優化

前端開發代碼優化、可維護性、瀏覽器兼容性是非常重要的課題。從實際的工程應用角度出發,最常遇見的前端優化問題。前端性能進行優化規則,基本可以涵蓋現在前端大部分的性能優化原則了,很多更加geek和精細優化方法都是從這些原則裡面延伸出來的。

前端性能進行優化都有哪些規則

  1. 減少HTTP請求次數

    盡量合並圖片、CSS、JS。比如載入一個頁面有5個css文件的話,把這個5個文件合成一個的話,就只需要發出一次http請求,節省網路請求時間,加快頁面的載入。

2. 使用CDN

網站上靜態資源即css、js全都使用cdn分發,包括圖片

3. 避免空的src和href

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

4. 為文件頭指定Expires

Exipres是用來設置文件的過期時間的,一般對css、js、圖片資源有效。 他可以使內容具有緩存性,這樣下回再訪問同樣的資源時就通過瀏覽器緩存區讀取,不需要再發出http請求。如下例子:

新浪微博的這個css文件的Expires時間是2016-5-04 09:14:14.

5. 使用gzip壓縮內容

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

6. 把CSS放到頂部

網頁上的資源載入時從上網下順序載入的,所以css放在頁面的頂部能夠優先渲染頁面,讓用戶感覺頁面載入很快。

7. 把JS放到底部

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

8. 避免使用CSS表達式

舉個css表達式的例子

font-color: expression( (new Date()).getHours()%3 ? 「#FFFFFF" : 「#AAAAAA" );

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

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

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

10. 權衡DNS查找次數

減少主機名可以節省響應時間。但同時,需要注意,減少主機會減少頁面中並行下載的數量。

IE瀏覽器在同一時刻只能從同一域名下載兩個文件。當在一個頁面顯示多張圖片時,IE 用戶的圖片下載速度就會受到影響。所以新浪會搞N個二級域名來放圖片。

下面是新浪微博的圖片域名,我們可以看到他有多個域名,這樣可以保證這些不同域名能夠同時去下載圖片,而不用排隊。不過如果當使用的域名過多時,響應時間就會慢,因為不用響應域名時間不一致。

11. 精簡CSS和JS

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

12. 避免跳轉

有種現象會比較坑爹,看起來沒什麼差別,其實多次了一次頁面跳轉。比如當URL本該有斜杠(/)卻被忽略掉時。例如,當我們要訪問http:// .com時,實際上返回的是一個包含301代碼的跳轉,它指向的是http:// .com/(注意末尾的斜杠)。在nginx伺服器可以使用rewrite;Apache伺服器中可以使用Alias 或者 mod_rewrite或者the DirectorySlash來避免。

另一種是不用域名之間的跳轉, 比如訪問http:// .com/bbs跳轉到http:// bbs..com/。那麼可以通過使用Alias或者mod_rewirte建立CNAME(保存一個域名和另外一個域名之間關系的DNS記錄)來替代。

13. 刪除重復的JS和CSS

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

14. 配置ETags

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

15. 可緩存的AJAX

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

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

16. 使用GET來完成AJAX請求

當使用XMLHttpRequest時,瀏覽器中的POST方法是一個「兩步走」的過程:首先發送文件頭,然後才發送數據。因此使用GET獲取數據時更加有意義。

17. 減少DOM元素數量

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

18. 避免404

比如外鏈的css、js文件出現問題返回404時,會破壞瀏覽器的並行載入。

19. 減少Cookie的大小

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

20. 使用無cookie的域

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

21. 不要使用濾鏡

IE獨有屬性AlphaImageLoader用於修正7.0以下版本中顯示PNG圖片的半透明效果。這個濾鏡的問題在於瀏覽器載入圖片時它會終止內容的呈現並且凍結瀏覽器。在每一個元素(不僅僅是圖片)它都會運算一次,增加了內存開支,因此它的問題是多方面的。

完全避免使用AlphaImageLoader的最好方法就是使用PNG8格式來代替,這種格式能在IE中很好地工作。如果你確實需要使用AlphaImageLoader,請使用下劃線_filter又使之對IE7以上版本的用戶無效。

22. 不要在HTML中縮放圖片

比如你需要的圖片尺寸是50* 50

那就不用用一張500*500的大尺寸圖片,影響載入

23. 縮小favicon.ico並緩存

Ⅱ 常用的前端性能優化方法有哪些

1、減少http請求,合理設置HTTP緩存

2、使用瀏覽器緩存

3、啟用壓縮

4、CSS Sprites,合並 CSS圖片,減少請求數

5、CSS放在頁面最上部,javascript放在頁面最下面

Ⅲ 如何進行前端優化

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. 合理使用規則,避免過度優化

性能優化主要分為兩類:

    • 載入時優化

    • 運行時優化

Ⅳ 前端如何做好網站性能優化

前端開發需要做的就是網站搭建。網站搭建有2個細節需要注意,一是排版,二是鏈接,排版是為了不讓出現亂碼而做細節優化,鏈接是為了優化網頁之間的關系,就好比城鎮建設,每一座城市都要搭建的好,城與城之間的交通也要完善,這樣才有利於城區發展,網站也是一樣,每個網頁的內容和網頁之間的鏈接做好,網站優化也就好做了。

Ⅳ 常見的前端性能優化手段都有哪些都有多大收益

請求數量——合並腳本和樣式表,CSS Sprites,拆分初始化負載,劃分主域
請求帶寬——開啟Gzip,精簡JavaScript,移除重復腳本,圖像優化
緩存利用——使用CDN,使用外部JavaScript和CSS,添加Expires頭,減少DNS查找,配置ETag,使Ajax可緩存
頁面結構——將樣式表放在頂部,將腳本放在底部,盡早刷新文檔的輸出
代碼校驗——避免CSS表達式,避免重定向

Ⅵ 前端性能優化的具體方法有哪些

解決辦法一:

減少http請求次數:CSS Sprites, JS、CSS源碼壓縮、圖片大小控制合適;網頁Gzip,CDN託管,data緩存 ,圖片伺服器。
前端模板 JS+數據,減少由於HTML標簽導致的帶寬浪費,前端用變數保存AJAX請求結果,每次操作本地變數,不用請求,減少請求次數
用innerHTML代替DOM操作,減少DOM操作次數,優化javascript性能。
當需要設置的樣式很多時設置className而不是直接操作style。
少用全局變數、緩存DOM節點查找的結果。減少IO讀取操作。
避免使用CSS Expression(css表達式)又稱Dynamic properties(動態屬性)。
圖片預載入,將樣式表放在頂部,將腳本放在底部 加上時間戳。
解決辦法二:

減少HTTP請求次數
使用CDN:CDN在前端開發的作用
避免空的src和href
為文件頭指定Expires
使用gzip壓縮內容
把CSS放到頂部
把JS放到底部
避 免使用CSS表達式
將CSS和JS放到外部文件中
避免跳轉
可緩存的AJAX
使用GET來完成AJAX請求

Ⅶ 如何優化前端頁面體驗和訪問速度

1.優化圖片

這個絕對是顯而易見的,可以看到圖片占據的頁面內容分量最重。在現代網頁設計中,圖片絕對占據了大部分的內容。你需要針對你的頁面重新定義圖片大小。這能夠有效地幫助你減少頁面大小。而且,這里有很多的功能能夠幫助你針對圖片減肥,例如,Smush.it和TinyPNG
在photoshop中保存web所用格式圖片時候適當的進行壓縮。或者採用圖片延遲載入技術
2.壓縮CSS和Javascript代碼

有效地壓縮CSS和javascript代碼能夠有效地減少頁面大小,你可以刪除空格優化代碼。當然,壓縮代碼對於代碼閱讀不是非常有用,但是一般作為產品環境來說,我們通過這種方式可以有效地減少頁面載入時間。css&js壓縮工具
3.避免使用@import

@import CSS語法允許你載入其它的CSS文件。有時間非常有幫助,但是它並不是和主文件一起下載的,所以可能會增加頁面載入時間。建議使用link標簽,這樣會更加高效。
4.減少HTTP請求次數

減少HTTP請求次數可以幫助你有效的增加網站載入速度。你可以使用如下方式:
a.融合文件
將不同的樣式表css合成一個文件可以減少http請求的次數。同樣對於javascript來說也適用。
b.使用CSS sprites
使用sprites可以幫助你把多個圖片文件放置到一個文件里,這樣可以減少圖片下載的次數。
5.javascript引用位置
例如:javascript的引用和cnzz的統計放到在代碼中放到body之後。

Ⅷ 如何優化前端頁面,網頁要如何優化(HTML5開發方面)

如何優化前端頁面 、如何優化網頁

作為前端開發人員來說,不但要開發出能兼容各大主流瀏覽器的頁面,而且還需要懂得去優化前端頁面,可以從「前期准備」「HTML結構」「CSS樣式」「JavaScript」以及「圖像」、「文件上線前的處理」等多個角度來考慮。

具體可以查看《如何優化前端頁面,HTML5開發如何優化網頁》

Ⅸ 前端性能優化什麼意思

如果前端優化得好,他不僅可以為企業節約成本,他還能給用戶帶來更多的用戶,因為增強的用戶體驗。說了這么多,那麼我們應該如何對我們前端的頁面進行性能優化呢?一般說來,web前端指網站業務邏輯之前的部分,包括瀏覽器載入、網站視圖模型、圖片服務、CDN服務等,主要優化手段有瀏覽器訪問、使用反向代理才、CDN等。

Ⅹ 你有用過哪些前端性能優化的方法

這個是面試常問的問題了。

我來簡單說下幾個方面:

1.減少http請求:在YUI35規則中也有提到,主要是優化js、css和圖片資源三個方面,因為html是沒有辦法避免的。因此,我們可以做一下的幾項操作:

  • 合並js文件

  • 合並css文件

  • 雪碧圖的使用(css sprite)

  • 使用base64表示簡單的圖片

2.減少資源體積

  • 壓縮css

  • 壓縮js

  • 壓縮圖片

3.圖片載入處理:

  • 圖片預載入

  • 圖片懶載入

  • 首屏載入時進度條的顯示

就簡單說這些,特別詳細的可以網上看下。