Web前端 優化方案

2022-02-12 19:23:41 字數 1991 閱讀 4980

1.減少http請求

在乙個頁面中,css,js可能n個,如果每個資源都去請求一次伺服器的話,那麼伺服器就會為每個資源開乙個執行緒來完成,這樣的話對伺服器的壓力就很大了。所以解決的方法就是合併資源。

css和js合併:c#(mvc)用bundleconfig.cs來解決多個css和js檔案,只需要一次請求。(global.asax裡面要開啟bundletable.enableoptimizations)

2.快取

可以將網頁中頻率使用比較高,但是更改比較少的資源進行快取。像這些資源有logo,js,css...等等。我們可以在http請求中的cache-control和expires屬性來進行設定它的快取時間,來進行快取這些資源。如果說對某個css進行快取,但是我要更改了這個css檔案怎麼讓瀏覽器使用我更改後的css檔案呢?解決方法就是更改css檔名就可以。js和logo等等這些都是一樣的。如果有多個快取檔案都要更新,不要同時更新盡量乙個乙個的去更新。這樣可以減少伺服器壓力。

3.壓縮

伺服器可以對文字壓縮,客戶端進行解壓。這樣可以減少通訊傳輸數量。因此像html,js,css檔案可以啟用gzip壓縮來進行傳輸。但是它還有乙個弊端就是伺服器需要壓縮,客戶端需要解壓,所以就是對伺服器和瀏覽器造成壓力。如果說網路通訊比較好的則不需要考慮這項來進行優化了。

4.css在前,js在後

就是在乙個頁面中盡量把css放在頁面的前面,js放在頁面的後面。因為js會造成阻塞,這樣會陰影頁面的渲染。我說的盡量不是一定要這樣做,有時候我們需要js解析頁面的時候就不適合放在最後面了。

5.慎用cookie

因為cookie包含在每次請求和響應中,如果太大的cookie資料的話會嚴重影響資料傳輸。所以那些資料需要用到cookie來儲存自己一定要把握好,用不好會影響使用者體驗。建議像css,js檔案就不要用cookie儲存,可以考慮用靜態網域名稱訪問獨立伺服器。

6.cdn

cdn(content distribute network 內容分發網路)它其實就是乙個快取,它是將資料快取到離使用者最近的地方。如下圖。可以看到客戶端可以以最快的速度就可以獲取到靜態資源(也就網路訪問第一跳)。所以cdn可以放一些訪問比較頻繁的資源,(如:,css,js...等等)。比如**海量就是cdn來解決的。

7.反向**伺服器

**伺服器可以配置快取來快取靜態資源。當使用者第一次伺服器就可以把靜態資源快取了**伺服器上。其它使用者再次訪問的時候就可以在**伺服器上獲取資源了。反向**伺服器不僅僅是快取資源,

1.它還可以保證**的安全的功能,因為所有訪問都是必須要經過反向**伺服器。所以可以在反向**服務建立一道屏障,從而減少網路攻擊。(有一夫當關,萬夫莫開的感覺)

2.它還可以完成負載均衡的功能,通過負載均衡構建的應用集群可以提高系統總體處理能力,從而改善**高併發情況下的效能。

看到上面的圖給我的感覺有點像aop(面向切面程式設計:就是乙個點控制多個面)。反向**伺服器就是乙個點,集群伺服器就是多個面。**許可權功能就是aop來完成的,**許可權也是出於安全考慮。所以給我的感覺上面的圖有點類似aop工作原理

總結:如果你的**不是唯一性的話(唯一性就是網際網路中只有乙個,如12306**),那麼就要考慮到網頁的響應時間了。響應時間遵循2,5,8定律,也就是說2秒之內響應,使用者體驗較好。5秒之內響應,使用者還可以接受。8秒鐘之內,可能就會流失使用者了。在這個競爭這麼激烈的網際網路中,如果你的**使用者體驗不好的話,就會流失使用者群了。

(本人學識有限,文章如有誤,願見諒。希望能指出來,以免誤人子弟了。^_^)

web前端優化

盡量避免使用eval函式 多了一步解析的步驟 function testnoeval var endtime new date console.log 耗時1 endtime starttime ms function testeval var endtime new date console.lo...

web前端優化

做為乙個好的優秀前端,不僅能夠寫出優雅的 也要更加關注於效能性的問題,但由於我們在專案過程中可能會考慮到一些成本性的問題,不可能讓我們的專案在效能方面面面俱到,但我們可以做到最為基本的做優化。我們可以從以下幾點進行優化 1.減少對伺服器方面的請求 我們使用外部檔案 css 和js css sprit...

web前端效能優化

01 減少http請求 使用css sprite 合併js css02 使用cdn 當頁面中有很多資源的時候可以從不同伺服器中讀取 設定長的expires時間將直接減少http請求 如果資源設定了expires頭為將來的某個時間,下次訪問時候瀏覽器 發現資源還沒有過期,會直接從快取中讀取,不會再次產...