<rp id="dwz69"></rp>

  • <dd id="dwz69"><track id="dwz69"></track></dd>

    優化網站性能有哪些方法?網站性能優化的重點

    瀏覽:/ 2020-01-14
      一、前端優化   網站功能優化是一個很歸納的論題,涉及到服務器的裝備和網站前后端程序等各個方面,我只是從實際閱歷出發,分享一下自己所嘗試過的網站功能優化辦法。之所以在標題上掛一個web2.0,是由于本文更偏重于中小網站的功能優化,我所運用的體系也是典型web2.0的LAMP架構。   首先講講前端的優化,用戶拜訪網頁的等待時刻,有80%是發作在瀏覽器前端,特別是頁面和頁面中各種元素(圖片、CSS、Javascript、 flash…)的下載之上。因此在許多情況下,相關于把很多的時刻花在艱苦而繁雜的程序改善上,前端的優化往往能起到事半功倍的作用。雅虎最近將內部運用的功能測驗東西yslow向第三方公開,并發布了著名的網站功能優化的十三條規則,主張你下載并裝置yslow,并作為測評網站優化作用的東西。下面我挑其間特別有價值的具體說明一下優化的辦法:   關于第一次拜訪您網站,尚未在瀏覽器cache中緩存您網站內容的用戶,咱們能夠做的作業包括:   1)削減一個頁面拜訪所發作的http連接次數   關于第一次拜訪你網站的用戶,頁面所發作的http連接次數是影響功能的一個要害瓶頸。   對策:   - 盡量簡練的頁面規劃,最大程度削減圖片的運用,經過拋棄一些不必要的頁面特效來削減javascript的運用。   - 運用一些優化技巧,比方利用圖片的背景位移削減圖片的個數;image map技能;運用Inline images將css圖片捆綁到網頁中。   - 盡量合并js和css文件,削減獨立文件個數。   2) 運用gzip緊縮網頁內容   運用gzip來緊縮網頁中的靜態內容,能夠顯著削減用戶拜訪網頁時的等待時刻(據說可達到60%)。主流的web服務器都支撐或供給gzip緊縮,假如運用apache服務器,只需求在裝備文件中敞開 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是靜態的頁面,運用gzip緊縮都能夠顯著進步服務器功率并削減帶寬支出,留意圖片內容本身已經是緊縮格式了,有必要不要再進行緊縮。   3)將CSS放在頁面頂端,JS文件放在頁面底端   CSS的引證要放在html的頭部header中,JS文件引證盡量放在頁面底端標簽的后邊,首要的思路是讓中心的頁面內容盡早顯示出來。不過要留意,一些很多運用js的頁面,可能有一些js文件放在底端會引起一些難以預料的問題,根據實際情況恰當運用即可。   4)使JS文件內容最小化   具體來說便是運用一些javascript緊縮東西對js腳本進行緊縮,去除其間的空白字符、注釋,最小化變量名等。在運用gzip緊縮的基礎上,對js內容的緊縮能夠將功能再進步5%。   5)盡量削減外部腳本的運用,削減DNS查詢時刻   不要在網頁中引證太多的外部腳本,首先,一次dns的解析進程會耗費20-120毫秒的時刻;其次,假如在頁面中引證太多的外部文件(如各種廣告、聯盟等代碼),可能會由于外部文件的響應速度而將你的網站拖得很慢。假如不得不必,那么就盡量將這些腳本放在頁腳吧。不過有一點需求提及,便是瀏覽器一般只能并行處理同一域名下的兩個請求,而關于不同子的域名則不受此限制,因此恰當將本站靜態內容(css,js)放在其他的子域名下(如 static.xxx.com)會有利于進步瀏覽器并行下載網頁內容的才能。   關于您網站的經常性拜訪用戶,首要的優化思路便是最大限度利用用戶瀏覽器的cache來削減服務器的開支。   1)在header中增加過期時刻(Expires Header)   在header中給靜態內容增加一個較長的過期時刻,這樣能夠運用戶今后拜訪只讀取緩存中的文件,而不會與服務器發作任何的交互。不過這樣做也存在一些問題,當圖片、CSS和js文件更新時,用戶假如不改寫瀏覽器,就無法獲得此更新。這樣,咱們在對圖片、css和js文件修改時,必需要進行重命名,才能確保用戶拜訪到最新的內容。這可能會給開發形成不小的麻煩,由于這些文件可能被站點中的許多文件所引證。flickr提出的解決辦法是經過url rewrite使不同版本號的URL事實上指向同一個文件,這是一個聰明的辦法,由于url等級的操作功率是很高的,能夠給開發進程供給不少便當。   要了解為什么這樣做,必需要了解瀏覽器拜訪url時的作業機制:   a. 第一次拜訪url時,用戶從服務器段獲取頁面內容,并把相關的文件(images,css,js…)放在高速緩存中,也會把文件頭中的expired time,last modified, ETags等相關信息也一起保留下來。   b. 用戶重復拜訪url時,瀏覽器首先看高速緩存中是否有本站同名的文件,假如有,則檢查文件的過期時刻;假如尚未過期,則直接從緩存中讀取文件,不再拜訪服務器。   c. 假如緩存中文件的過期時刻不存在或已超出,則瀏覽器會拜訪服務器獲取文件的頭信息,檢查last modifed和ETags等信息,假如發現本地緩存中的文件在上次拜訪后沒被修改,則運用本地緩存中的文件;假如修改過,則從服務器上獲取最新版本。   我的經驗,假如可能,盡量遵從此原則給靜態文件增加過期時刻,這樣能夠大幅度削減用戶對服務器資源的重復拜訪。   2)將css和js文件放在獨立外部文件中引證   將css和js文件放在獨立文件中,這樣它們會被獨自緩存起來,在拜訪其他頁面時能夠從瀏覽器的高速緩存中直接讀取。一些網站的主頁可能是破例的,這些主頁的自身瀏覽可能并不大,但卻是用戶拜訪網站的第一印象以及導向到其他頁面的起點,也可能這些頁面本身運用了很多的ajax部分改寫及技能,這時能夠將 css和js文件直接寫在頁面中。   3)去掉重復的腳本   在IE中,包括重復的js腳本會導致瀏覽器的緩存不被運用,細心檢查一下你的程序,去掉重復引證的腳本應該不是一件很難的作業。   4)防止重定向的發作   除了在header中人為的重定向之外,網頁重定向常在不經意間發作,被重定向的內容將不會運用瀏覽器的緩存。比方用戶在拜訪,服務器會經過301轉向到/,在后邊加了一個“/”。假如服務器的裝備不好,這也會給服務器帶來額外的負擔。經過裝備apache的 alias或運用mod_rewrite模塊等辦法,能夠防止不必要的重定向。

    閱讀"優化網站性能有哪些方法?網站性能優化的重點"的人還閱讀

    上一篇:SEO排名技巧:企業網站關鍵詞排名優化

    下一篇:靜態,偽靜態和動態頁面對于SEO的區別