如何優(yōu)化網(wǎng)站性能?針對前后端代碼框架優(yōu)化
閱讀 ?·? 發(fā)布日期 2022-03-25 19:43 ?·? admin1、 前端優(yōu)化
首先,讓我們談?wù)勄岸藘?yōu)化。80%的用戶訪問網(wǎng)頁的等待時間發(fā)生在瀏覽器前端,尤其是頁面和頁面中各種元素(圖片、CSS、JavaScript、flash…)的下載。因此,在許多情況下,與花費大量時間在困難和復(fù)雜的程序改進上相比,前端優(yōu)化往往可以事半功倍。
對于首次訪問您的網(wǎng)站但尚未將您的網(wǎng)站內(nèi)容緩存在瀏覽器緩存中的用戶,我們可以執(zhí)行以下操作:
1) 減少頁面訪問生成的HTTP連接數(shù)
對于首次訪問您的網(wǎng)站的用戶,頁面生成的HTTP連接數(shù)是影響性能的關(guān)鍵瓶頸。
對策:
-保持頁面設(shè)計盡可能簡單,盡量減少圖片的使用,并通過放棄一些不必要的頁面效果來減少JavaScript的使用。
-使用一些優(yōu)化技術(shù),如利用圖片的背景位移來減少圖片數(shù)量;影像地圖技術(shù);使用inlineimages將CSS圖像捆綁到網(wǎng)頁中。
-嘗試合并JS和CSS文件以減少獨立文件的數(shù)量。
2) 將CSS放在頁面頂部,將JS文件放在頁面底部
CSS引用應(yīng)放在HTML的標題中,JS文件引用應(yīng)盡可能放在頁面底部標記的后面。其主要思想是盡快顯示核心頁面內(nèi)容。但是需要注意的是,對于一些使用了大量JS的頁面,底部的一些JS文件可能會導(dǎo)致一些不可預(yù)知的問題,可以根據(jù)實際情況適當使用。
具體來說,一些JavaScript壓縮工具用于壓縮JS腳本、刪除空白字符和注釋以及最小化變量名。基于gzip壓縮,JS內(nèi)容的壓縮可以將性能再提高5%。
3) 盡量減少使用外部腳本并減少DNS查詢時間
對于網(wǎng)站的頻繁用戶,主要的優(yōu)化思想是很大限度地利用用戶瀏覽器的緩存,以減少服務(wù)器的開銷。
4) 在標題中添加過期時間(expiresheader)
向標頭中的靜態(tài)內(nèi)容添加一個較長的過期時間,以便用戶將來只能讀取緩存中的文件,而無需與服務(wù)器進行任何交互。然而,這樣做也存在一些問題。更新圖像、CSS和JS文件時,如果用戶不刷新瀏覽器,則無法獲得更新。這樣,當我們修改圖像、CSS和JS文件時,我們必須重命名它們,以確保用戶能夠訪問有價值的內(nèi)容。這可能會給開發(fā)帶來很多麻煩,因為這些文件可能會被站點中的許多文件引用。Flickr提出的處理方法是通過URL重寫使不同版本號的URL實際指向同一個文件,這是一種聰明的方法,因為URL級別的操作效率很高,可以為開發(fā)過程提供很多便利。
要了解原因,您必須了解瀏覽器在訪問URL時的工作方式:
A.首次訪問URL時,用戶從服務(wù)器段獲取頁面內(nèi)容,將相關(guān)文件(圖像、CSS、JS…)放入緩存,并在文件頭中保留過期時間、LastModified、ETag和其他相關(guān)信息。
B當用戶重復(fù)訪問URL時,瀏覽器首先檢查緩存中是否存在同名文件。如果是,請檢查文件的過期時間;如果文件未過期,則直接從緩存讀取該文件,并且不再訪問服務(wù)器。
C如果緩存中文件的過期時間不存在或已超過,瀏覽器將訪問服務(wù)器以獲取文件的標題信息,檢查LastModified、etags和其他信息。如果發(fā)現(xiàn)自上次訪問以來本地緩存中的文件未被修改,則將使用本地緩存中的文件;
根據(jù)我的經(jīng)驗,如果可能的話,試著遵循這個原則為靜態(tài)文件增加過期時間,從而大大減少用戶對服務(wù)器資源的重復(fù)訪問。
5) CSS和JS文件在單獨的外部文件中引用
將CSS和JS文件放在單獨的文件中,以便它們單獨緩存,并且在訪問其他頁面時可以直接從瀏覽器的緩存中讀取。有些網(wǎng)站的主頁可能是例外。這些主頁的自瀏覽量可能不大,但這是用戶訪問網(wǎng)站的***印象,也是引導(dǎo)用戶訪問其他頁面的起點。這些頁面本身也可能使用大量Ajax本地刷新和技術(shù)。此時,CSS和JS文件可以直接寫入頁面中。
在ie中,包含重復(fù)的JS腳本將導(dǎo)致瀏覽器的緩存不被使用。仔細檢查你的程序。刪除重復(fù)的引用腳本應(yīng)該不難。
除了標頭中的人工重定向之外,網(wǎng)頁重定向通常是無意中發(fā)生的,重定向的內(nèi)容不會使用瀏覽器的緩存。例如,當用戶正在訪問時,服務(wù)器將轉(zhuǎn)到/通過301,后跟“/”。如果服務(wù)器配置不好,也會給服務(wù)器帶來額外的負擔。通過配置Apache的別名或使用Mod_uurewrite模塊和其他方法,可以盡可能避免不必要的重定向。
還有其他一些,例如使用CDN分發(fā)機制、避免CSS表達式、避免ETag等。因為它們不常用,所以這里不再重復(fù)。
經(jīng)過以上優(yōu)化后,可以嘗試用Yslow測試網(wǎng)頁的性能得分,一般可以達到70分以上。
當然,除了對瀏覽器前端和靜態(tài)內(nèi)容進行優(yōu)化外,還對程序腳本、服務(wù)器、數(shù)據(jù)庫和加載進行了優(yōu)化。這些更深層次的優(yōu)化方法對技術(shù)有更高的要求。本文的后半部分將重點討論后端優(yōu)化。
如何優(yōu)化網(wǎng)站性能?針對前后端代碼框架優(yōu)化
2、 后端優(yōu)化
前端優(yōu)化可以盡可能避免對服務(wù)器和帶寬資源造成不必要的浪費,但隨著網(wǎng)站訪問量的增加,僅靠前端優(yōu)化并不能解決所有問題。后端軟件處理并行請求的能力、程序運行效率、硬件性能和系統(tǒng)可擴展性將成為影響網(wǎng)站性能和穩(wěn)定性的關(guān)鍵瓶頸。為了優(yōu)化系統(tǒng)和程序的性能,我們可以從以下幾個方面入手:
1) Apache、MySQL等軟件的配置優(yōu)化
雖然安裝后Apache和MySQL等軟件使用的默認設(shè)置足以讓您的網(wǎng)站運行,但您仍然可以通過調(diào)整MySQL和Apache的一些系統(tǒng)參數(shù)來追求更高的效率和穩(wěn)定性。這個領(lǐng)域有很多專業(yè)的文章和論壇(例如:),為了掌握它,還需要進行深入的研究和實踐,這里不再討論。
Apache是一個功能齊全但相對較大的web服務(wù)器。它的資源消耗基本上與同時運行的進程數(shù)成正比。它消耗大量服務(wù)器內(nèi)存,通常在處理并行任務(wù)時效率很高。在某些情況下,我們可以使用輕量級Web服務(wù)器托管靜態(tài)圖像、樣式表和JavaScript文件。只有這樣,才能大大提高靜態(tài)文件的處理速度,大大減少內(nèi)存占用。我使用的web服務(wù)器是來自俄羅斯的nginx。其他選項包括lighttpd和thttpd。
當前端服務(wù)器不足以應(yīng)付用戶訪問時,通過前端機實現(xiàn)web訪問的負載均衡是最快、最可行的方案。通過apachemod_u2;Proxy可以輕松實現(xiàn)基于反向代理的負載平衡。建議使用nginx作為代理服務(wù)器,這比Apache更快。
2) 應(yīng)用緩存技術(shù)提高數(shù)據(jù)庫效率、文件緩存和分布式緩存
3) 檢查服務(wù)器的運行狀態(tài)以查找影響性能的瓶頸
系統(tǒng)優(yōu)化沒有一勞永逸的方法。我們需要檢測服務(wù)器的運行狀態(tài),及時發(fā)現(xiàn)影響性能的瓶頸和可能存在的潛在問題,因為網(wǎng)站的性能總是取決于桶中的短板。可以編寫一些腳本來檢查Web服務(wù)的操作,一些開源軟件也提供了良好的功能
一些技巧和技巧可以幫助你克服目前的困難,但是如果你想讓網(wǎng)站具備應(yīng)對大規(guī)模訪問的能力,你需要從系統(tǒng)架構(gòu)上做一個周密的規(guī)劃。幸運的是,許多前輩無私地分享了他們的架構(gòu)。網(wǎng)站優(yōu)化是指通過對網(wǎng)站功能、網(wǎng)站結(jié)構(gòu)、網(wǎng)頁布局、網(wǎng)站內(nèi)容等要素的合理設(shè)計,使得網(wǎng)站內(nèi)容和功能表現(xiàn)形式達到對用戶友好并易于宣傳推廣的最佳效果,充分發(fā)揮網(wǎng)站的網(wǎng)絡(luò)營銷價值,是一項系統(tǒng)性和全局性的工作,包括對用戶的優(yōu)化、對搜索引擎的優(yōu)化、對運營維護的優(yōu)化。網(wǎng)站優(yōu)化已經(jīng)成為網(wǎng)絡(luò)營銷經(jīng)營策略的必然要求。
網(wǎng)站優(yōu)化,SEO優(yōu)化,關(guān)鍵詞排名-搜索引擎營銷推廣城市導(dǎo)航:
為您推薦
- 網(wǎng)站排名優(yōu)化一定要注意到這些重點 2022-10-20
- 在搜索引擎優(yōu)化中,這些數(shù)據(jù)別忘了 2022-10-20
- 這些因素直接影響了關(guān)鍵詞排名優(yōu)化 2022-10-20
- 進行網(wǎng)站排名優(yōu)化時對網(wǎng)頁內(nèi)容有何 2022-10-20
- 新網(wǎng)站在進行seo首頁優(yōu)化要了解的事 2022-10-20