如何優(yōu)化網(wǎng)站速度?
摘要:對于網(wǎng)站經(jīng)營者來說,讓用戶等待的時(shí)間過長,也許會造成毀滅性的后果。我見過很多人為了享用某家特色小吃而在餐館門口樂此不疲地排著長隊(duì),卻沒有聽說有多少用戶執(zhí)著地等待一個(gè)速度緩慢的網(wǎng)站而不去嘗試別的網(wǎng)站
對于網(wǎng)站經(jīng)營者來說,讓用戶等待的時(shí)間過長,也許會造成毀滅性的后果。我見過很多人為了享用某家特色小吃而在餐館門口樂此不疲地排著長隊(duì),但沒有聽說有多少用戶執(zhí)著地等待一個(gè)速度緩慢的網(wǎng)站而不去嘗試別的網(wǎng)站。
在這段等待的時(shí)間里,到底發(fā)生了什么?
.數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)臅r(shí)間
.站點(diǎn)服務(wù)器處理請求并生成回應(yīng)數(shù)據(jù)的時(shí)間
.瀏覽器本地和渲染的時(shí)間
數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)臅r(shí)間總的包括兩部分,即瀏覽器端主機(jī)發(fā)出的請求數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)到達(dá)服務(wù)器的時(shí)間,以及服務(wù)器的回應(yīng)數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)回到瀏覽器主機(jī)的時(shí)間。這兩部分,我們稱它為響應(yīng)時(shí)間,它的決定因素主要包括數(shù)據(jù)量和網(wǎng)絡(luò)帶寬。
站點(diǎn)服務(wù)器處理請求并生成回應(yīng)數(shù)據(jù)的時(shí)間主要消耗在服務(wù)器端,包括非常多的環(huán)節(jié),我們一般用另一個(gè)指標(biāo)來衡量這部分時(shí)間,即每秒處理請求數(shù),也稱吞吐量。影響服務(wù)器吞吐量的因素非常多,比如服務(wù)器的并發(fā)策略、I/O性能、CPU核數(shù)等。
瀏覽器本地計(jì)算和渲染的時(shí)間自然消耗在瀏覽器,它依賴的因素包括瀏覽器采用的并發(fā)策略、樣式渲染方式、腳本解釋器的性能、頁面大小、頁面組件的數(shù)量、頁面組件緩存狀況、頁面組件域名分布以及域名DNS解析等。
現(xiàn)在,如果有用戶向你抱怨網(wǎng)站速度慢,你該知道慢在哪里了嗎?下面小編先簡單介紹我們常用的網(wǎng)站速度優(yōu)化方案。
1.增加帶寬
當(dāng)網(wǎng)站的網(wǎng)頁或組件下載速度變慢時(shí),最省事的辦法就是增加服務(wù)器帶寬;當(dāng)然如何節(jié)省帶寬、帶寬增加是否就能解決網(wǎng)站速度慢?可以參考服務(wù)器帶寬租賃的問題。
2.減少網(wǎng)頁中的HTTP請求
我們知道網(wǎng)站中幾乎任何一個(gè)網(wǎng)頁都包含了多個(gè)組件,每個(gè)組件都需要下載、計(jì)算和渲染,這些行為都會消耗時(shí)間。為此我們可以做以下嘗試和努力:
.設(shè)計(jì)更加簡單的網(wǎng)頁,使其包含較少的圖片和腳本,但是這可能犧牲了美觀和用戶交互。
.將多個(gè)圖片合并為一個(gè)文件,利用CSS背景圖片的偏移技術(shù)呈現(xiàn)在網(wǎng)頁中,避免了多個(gè)圖片的下載。
.合并JavaScript腳本或者CSS樣式表。
.充分利用HTTP中的瀏覽器端Cache策略,減少重復(fù)下載。
3.加快服務(wù)器腳本計(jì)算速度
使用主流的服務(wù)器腳本語言,如:PHP、asp、JSP等。
4.使用動態(tài)內(nèi)容緩存
5.使用數(shù)據(jù)緩存
6.將動態(tài)內(nèi)容靜態(tài)化
7.更換web服務(wù)器軟件(Apache、IIS)
8.頁面組件分離
9.合理部署服務(wù)器
機(jī)房有很多,比如:電信機(jī)房、聯(lián)通機(jī)房、BGP多線機(jī)房等,而與之對應(yīng)的IDC服務(wù)商更數(shù)不勝數(shù)。當(dāng)你在托管服務(wù)器的時(shí)候,選擇網(wǎng)絡(luò)穩(wěn)定、電力不中斷、服務(wù)好的IDC服務(wù)器。
10.使用負(fù)載均衡
當(dāng)web服務(wù)器所承受的壓力達(dá)到極限是,就需要有更多的服務(wù)器來分擔(dān)工作;我們可以通過以下方式來實(shí)現(xiàn)web負(fù)載均衡:HTTP重定向、DNS輪詢解析、服務(wù)器集群等。
11.優(yōu)化數(shù)據(jù)庫
12.減少視覺等待