首先,讓我們談談前端優(yōu)化。80%的用戶訪問網(wǎng)頁的等待時間發(fā)生在瀏覽器前端,尤其是頁面和頁面中各種元素(圖片、CSS、JavaScript、flash…)的下載。因此,在許多情況下,與花費大量時間在困難和復雜的程序改進上相比,前端優(yōu)化往往可以事半功倍。 利美網(wǎng)絡
對于首次訪問您的網(wǎng)站但尚未將您的網(wǎng)站內(nèi)容緩存在瀏覽器緩存中的用戶,我們可以執(zhí)行以下操作:
利美網(wǎng)絡
1) 減少頁面訪問生成的HTTP連接數(shù)
對于首次訪問您的網(wǎng)站的用戶,頁面生成的HTTP連接數(shù)是影響性能的關鍵瓶頸。
利美項目圈
對策:
利美項目圈
-保持頁面設計盡可能簡單,盡量減少圖片的使用,并通過放棄一些不必要的頁面效果來減少JavaScript的使用。 copyright limeiseo
-使用一些優(yōu)化技術,如利用圖片的背景位移來減少圖片數(shù)量;影像地圖技術;使用inlineimages將CSS圖像捆綁到網(wǎng)頁中。
本文利美網(wǎng)絡(m.nippyllc.com)整理發(fā)布
-嘗試合并JS和CSS文件以減少獨立文件的數(shù)量。
2) 將CSS放在頁面頂部,將JS文件放在頁面底部
利美網(wǎng)絡
CSS引用應放在HTML的標題中,JS文件引用應盡可能放在頁面底部標記的后面。其主要思想是盡快顯示核心頁面內(nèi)容。但是需要注意的是,對于一些使用了大量JS的頁面,底部的一些JS文件可能會導致一些不可預知的問題,可以根據(jù)實際情況適當使用。
具體來說,一些JavaScript壓縮工具用于壓縮JS腳本、刪除空白字符和注釋以及最小化變量名?;趃zip壓縮,JS內(nèi)容的壓縮可以將性能再提高5%。 利美知識百科
3) 盡量減少使用外部腳本并減少DNS查詢時間 利美網(wǎng)絡
對于網(wǎng)站的頻繁用戶,主要的優(yōu)化思想是很大限度地利用用戶瀏覽器的緩存,以減少服務器的開銷。 利美知識百科
4) 在標題中添加過期時間(expiresheader) 利美項目圈
向標頭中的靜態(tài)內(nèi)容添加一個較長的過期時間,以便用戶將來只能讀取緩存中的文件,而無需與服務器進行任何交互。然而,這樣做也存在一些問題。更新圖像、CSS和JS文件時,如果用戶不刷新瀏覽器,則無法獲得更新。這樣,當我們修改圖像、CSS和JS文件時,我們必須重命名它們,以確保用戶能夠訪問有價值的內(nèi)容。這可能會給開發(fā)帶來很多麻煩,因為這些文件可能會被站點中的許多文件引用。Flickr提出的處理方法是通過URL重寫使不同版本號的URL實際指向同一個文件,這是一種聰明的方法,因為URL級別的操作效率很高,可以為開發(fā)過程提供很多便利。
要了解原因,您必須了解瀏覽器在訪問URL時的工作方式: 利美項目圈
A.首次訪問URL時,用戶從服務器段獲取頁面內(nèi)容,將相關文件(圖像、CSS、JS…)放入緩存,并在文件頭中保留過期時間、LastModified、ETag和其他相關信息。
本文利美網(wǎng)絡(m.nippyllc.com)整理發(fā)布
B當用戶重復訪問URL時,瀏覽器首先檢查緩存中是否存在同名文件。如果是,請檢查文件的過期時間;如果文件未過期,則直接從緩存讀取該文件,并且不再訪問服務器。 利美項目圈
C如果緩存中文件的過期時間不存在或已超過,瀏覽器將訪問服務器以獲取文件的標題信息,檢查LastModified、etags和其他信息。如果發(fā)現(xiàn)自上次訪問以來本地緩存中的文件未被修改,則將使用本地緩存中的文件; 利美項目圈
根據(jù)我的經(jīng)驗,如果可能的話,試著遵循這個原則為靜態(tài)文件增加過期時間,從而大大減少用戶對服務器資源的重復訪問。 利美項目圈
5) CSS和JS文件在單獨的外部文件中引用 本文利美網(wǎng)絡(m.nippyllc.com)整理發(fā)布
將CSS和JS文件放在單獨的文件中,以便它們單獨緩存,并且在訪問其他頁面時可以直接從瀏覽器的緩存中讀取。有些網(wǎng)站的主頁可能是例外。這些主頁的自瀏覽量可能不大,但這是用戶訪問網(wǎng)站的***印象,也是引導用戶訪問其他頁面的起點。這些頁面本身也可能使用大量Ajax本地刷新和技術。此時,CSS和JS文件可以直接寫入頁面中。
利美項目圈
在ie中,包含重復的JS腳本將導致瀏覽器的緩存不被使用。仔細檢查你的程序。刪除重復的引用腳本應該不難。 limeiseo(加v分享)
除了標頭中的人工重定向之外,網(wǎng)頁重定向通常是無意中發(fā)生的,重定向的內(nèi)容不會使用瀏覽器的緩存。例如,當用戶正在訪問時,服務器將轉(zhuǎn)到/通過301,后跟“/”。如果服務器配置不好,也會給服務器帶來額外的負擔。通過配置Apache的別名或使用Mod_uurewrite模塊和其他方法,可以盡可能避免不必要的重定向。 copyright limeiseo
還有其他一些,例如使用CDN分發(fā)機制、避免CSS表達式、避免ETag等。因為它們不常用,所以這里不再重復。 limeiseo(加v分享)
經(jīng)過以上優(yōu)化后,可以嘗試用Yslow測試網(wǎng)頁的性能得分,一般可以達到70分以上。 利美網(wǎng)絡
當然,除了對瀏覽器前端和靜態(tài)內(nèi)容進行優(yōu)化外,還對程序腳本、服務器、數(shù)據(jù)庫和加載進行了優(yōu)化。這些更深層次的優(yōu)化方法對技術有更高的要求。本文的后半部分將重點討論后端優(yōu)化。 利美網(wǎng)絡
本文利美網(wǎng)絡(m.nippyllc.com)整理發(fā)布
本文利美網(wǎng)絡(m.nippyllc.com)整理發(fā)布如何優(yōu)化網(wǎng)站性能?針對前后端代碼框架優(yōu)化
利美項目圈
2、 后端優(yōu)化
limeiseo(加v分享)