提升網(wǎng)頁(yè)加載速度

網(wǎng)頁(yè)的加載速度是評(píng)估網(wǎng)站質(zhì)量一個(gè)重要指標(biāo)牲证,原因在于大多數(shù)用戶(hù)能夠容忍的網(wǎng)頁(yè)加載時(shí)間只有幾秒只壳,如果超出了訪(fǎng)客的忍受范圍他們會(huì)毫不留情地關(guān)掉你的網(wǎng)頁(yè)曾我,所以網(wǎng)頁(yè)載入速度會(huì)極大地影響網(wǎng)站的流量和訪(fǎng)問(wèn)。

我們?cè)谠L(fǎng)問(wèn)一些網(wǎng)站時(shí)腹尖,總是感覺(jué)頁(yè)面加載的速度不夠快,這是什么原因?qū)е碌哪胤ゲ保孔鳛榫W(wǎng)站的開(kāi)發(fā)者又能做哪些網(wǎng)站優(yōu)化來(lái)提高頁(yè)面的加載速度呢热幔?

以下馬海祥博客總結(jié)了幾種可以明顯提高網(wǎng)站加載速度的初步簡(jiǎn)單技巧方式,如果你的網(wǎng)站存在載入速度慢的問(wèn)題不妨以此為參考對(duì)網(wǎng)頁(yè)做些初步優(yōu)化讼庇。

1绎巨、使用良好的結(jié)構(gòu)

可擴(kuò)展 HTML (XHTML) 具有許多優(yōu)勢(shì),但是其缺點(diǎn)也很明顯蠕啄。XHTML 可能使您的頁(yè)面更加符合標(biāo)準(zhǔn)场勤,但是它大量使用標(biāo)記(強(qiáng)制性的 和 標(biāo)記),這意味著瀏覽器要下載更多代碼歼跟。

所以和媳,事情都有兩面性,嘗試在您的網(wǎng)頁(yè)中使用較少的XHTML代碼嘹承,以減小頁(yè)面大小窗价。

如果您確實(shí)不得不使用XHTML,試著盡可能對(duì)它進(jìn)行優(yōu)化叹卷。

2撼港、不要使布局超載

堅(jiān)持簡(jiǎn)約原則:少即是多坪它。頁(yè)面中充斥著各種類(lèi)型的圖像、視頻帝牡、廣告等往毡,這大大違背實(shí)用性原則。

3靶溜、不要使用圖像來(lái)表示文本

使用圖像表示文本的最常見(jiàn)示例就是在導(dǎo)航欄中开瞭,美觀(guān)的按鈕更加具有吸引力,但是它們的加載速度很慢罩息。

此外嗤详,圖像仍然不能由搜索引擎直接索引,因此瓷炮,使用圖像進(jìn)行導(dǎo)航不利于搜索引擎優(yōu)化葱色,當(dāng)無(wú)需圖像就可以通過(guò)大量 CSS 技巧創(chuàng)建漂亮的按鈕時(shí),絕不使用圖像來(lái)表示文本娘香。

4苍狰、檢查cookie使用情況

設(shè)置一個(gè)較早的 expire 日期或者根本不設(shè)置 expire 日期,會(huì)縮短響應(yīng)時(shí)間烘绽。

要在 PHP 語(yǔ)言中設(shè)置 cookie 的 expire 日期淋昭,使用以下代碼:


$expire = 2592000 + time();

// Add 30 day’s to the current time

setcookie(userid, “123rrw3”, $expire);

?>

這段代碼設(shè)置cookie userid,并將 expire 日期設(shè)置為自當(dāng)前日期之后30天安接。

5翔忽、不要包含不必要的JavaScript代碼,盡可能將其外部化

應(yīng)該明智地使用JavaScript(僅在真正必要時(shí)才使用)并優(yōu)化腳本的大小和速度赫段,縮短JavaScript下載時(shí)間的另一種方式是使用外部文件呀打,而不是包含腳本內(nèi)聯(lián),這種方法也適用于CSS糯笙,因?yàn)闉g覽器會(huì)緩存外部化的文本贬丛,而(在HTML頁(yè)面自身中)以?xún)?nèi)聯(lián)方式編碼的 CSS 或 JavaScript 每次都會(huì)隨 HTML 一起加載。

6给涕、盡可能避免使用表格

表格被用作網(wǎng)頁(yè)的主要構(gòu)建塊豺憔,但是作為頁(yè)面布局元素,使用表格現(xiàn)在被認(rèn)為是糟糕的做法够庙,有時(shí)候恭应,您必須使用表格(并且它們被認(rèn)為是顯示表格數(shù)據(jù)的出色實(shí)踐),如果是這樣耘眨,明確地指定表格單元格昼榛、行和列的寬度和高度,否則剔难,瀏覽器必須執(zhí)行許多操作來(lái)計(jì)算如何顯示它們胆屿,這會(huì)降低頁(yè)面加載速度奥喻。

7、刪除任何不必要的元素

可能這是所有技巧中最顯而易見(jiàn)的一個(gè)非迹,但是它也是最容易忘記的一個(gè)技巧环鲤。如果您真正需要在網(wǎng)頁(yè)上放置許多內(nèi)容,考慮將網(wǎng)頁(yè)分為2個(gè)憎兽、3個(gè)或更多的獨(dú)立頁(yè)面冷离。

8、一些優(yōu)化網(wǎng)頁(yè)的技巧

可以使用許多方法來(lái)優(yōu)化您的網(wǎng)頁(yè)纯命,包括壓縮JavaScript文件西剥,使用超文本傳輸協(xié)議(Hypertext Transfer Protocol,HTTP)壓縮扎附,以及設(shè)置圖像大小蔫耽。

例如:訪(fǎng)客點(diǎn)擊訪(fǎng)問(wèn)這樣一個(gè)目錄地址:http://www.mahaixiang.cn/SEO/,去打開(kāi)這個(gè)目錄下的index.html文檔留夜,當(dāng)服務(wù)器收到請(qǐng)求后它需要消耗一些時(shí)間來(lái)分析這是一個(gè)文件還是一個(gè)目錄,但是如果我們?cè)谧詈蠹由弦粋€(gè)斜杠(/)图甜,服務(wù)器就知道你是在訪(fǎng)問(wèn)一個(gè)目錄地址碍粥,然后就直接加載默認(rèn)文檔index.html或index.php就行了,這樣服務(wù)器就不用花時(shí)間來(lái)分析這個(gè)地址黑毅,也起到了一定加速的作用嚼摩。

9、壓縮和縮小JavaScript文件

您可以使用 GNU zip (gzip) 來(lái)完成此任務(wù)矿瘦,因?yàn)樵S多瀏覽器都支持這種壓縮算法枕面。

另一種替代方法是縮小文件,這種方法刪除代碼中所有不必要的字符缚去,比如制表符(tab)潮秘、新行和空格,它刪除代碼中的注釋和空白易结,進(jìn)一步縮小文件大小枕荞。外部和內(nèi)部樣式表都可以縮小。兩種最流行的縮小工具是 JSMin 和 YUI Compressor搞动。

10躏精、使用HTTP壓縮,并始終使用小寫(xiě)的div和類(lèi)名

可以使用HTTP壓縮來(lái)減少服務(wù)器與瀏覽器之間的通信量鹦肿,可以在A(yíng)pache中配置HTTP壓縮(.htaccess 文件)矗烛,或者可以將其包含到頁(yè)面中(對(duì)于PHP,可以使用一個(gè) HTTP_ACCEPT_ENCODING 選項(xiàng))箩溃。

但是請(qǐng)注意:不是所有瀏覽器都支持壓縮瞭吃,即使是支持壓縮的瀏覽器碌嘀,壓縮和解壓縮都會(huì)加重處理器的負(fù)載,要在 Apache 中啟用地毯式(blanket)壓縮(即壓縮所有文本和 HTML)虱而,使用以下命令:

AddOutputFilterByType DEFLATE text/html text/plain text/xml

另外筏餐,考慮一下您想要壓縮的內(nèi)容。圖像牡拇、音樂(lè)和視頻在創(chuàng)建時(shí)已經(jīng)進(jìn)行了壓縮魁瞪,因此您可以將壓縮對(duì)象限制為 HTML、CSS 和 JavaScript 文件惠呼。

另一種減少壓縮工作的技巧是使用小寫(xiě)形式的

元素和類(lèi)名导俘,由于大小寫(xiě)敏感性,并且使用的是無(wú)損壓縮剔蹋, 與 不同旅薄,它們被壓縮為兩個(gè)不同的標(biāo)記。

11泣崩、設(shè)置圖像大小

與表格單元格少梁、行和列一樣,當(dāng)您未明確設(shè)置圖像大小時(shí)矫付,瀏覽器需要執(zhí)行計(jì)算來(lái)顯示圖像凯沪,這會(huì)降低處理速度。

你會(huì)給每個(gè)圖片加上height和width屬性嗎买优?這兩個(gè)屬性可以讓瀏覽器在加載圖片之前就知道圖片的長(zhǎng)和寬妨马,并預(yù)留出指定的長(zhǎng)寬待圖片加載后顯示,如果沒(méi)有這兩個(gè)屬性杀赢,瀏覽器還需要在讀取圖片成功后再處理一次頁(yè)面布局樣式烘跺,這無(wú)疑減慢了網(wǎng)頁(yè)加載速度,所以在固定圖片大小的情況下最好都使用上長(zhǎng)和寬屬性脂崔。

12滤淳、將CSS圖像映射用于裝飾功能

使用圖像映射代替多個(gè)圖像,這是另一種縮短加載時(shí)間的方式脱篙,因?yàn)橥瑫r(shí)下載圖像的各個(gè)獨(dú)立部分能夠加快整個(gè)頁(yè)面的下載進(jìn)度娇钱。或者绊困,您可以使用某種名為 CSS sprites 的工具文搂,CSS sprites可幫助減少 HTTP 請(qǐng)求的數(shù)量。一個(gè)圖像可以包含裝飾或布置頁(yè)面所需的所有圖像元素秤朗,您使用 CSS 來(lái)選擇(通過(guò)調(diào)用某些位置和維度)用于特定元素的映射煤蹭。

13、盡可能延遲腳本加載

一種提升頁(yè)面下載速度的潛在方式是將腳本放在頁(yè)面的底部,使頁(yè)面加載更迅速硝皂。

通常常挚,瀏覽器只能(從同一個(gè)域)下載不超過(guò)兩個(gè)并行對(duì)象,如果一個(gè)對(duì)象是一段 JavaScript 代碼稽物,那么在該腳本下載完之前奄毡,其他頁(yè)面組件的下載將會(huì)暫停。

如果將 JavaScript 代碼放在頁(yè)面底部贝或,(在大多數(shù)情況下)它將在最后下載吼过,這時(shí)所有其他組件都已下載完。

14咪奖、按需加載 JavaScript 文件

要按需加載 JavaScript盗忱,使用 import() 函數(shù)。

function $import(src){

var scriptElem = document.createElement('script');

scriptElem.setAttribute('src',src);

scriptElem.setAttribute('type','text/javascript');

document.getElementsByTagName('head')[0].appendChild(scriptElem);

}

// import with a random query parameter to avoid caching

function $importNoCache(src){

var ms = new Date().getTime().toString();

var seed = "?" + ms;

$import(src + seed);

}

15羊赵、驗(yàn)證函數(shù)加載

也可以驗(yàn)證一個(gè)函數(shù)是否被加載趟佃,如果沒(méi)有,加載 JavaScript 文件昧捷。

驗(yàn)證函數(shù)是否被加載:

if (myfunction){

// The function has been loaded

}

else{ // Function has not been loaded yet, so load the javascript.

$import('http://www.yourfastsite.com/myfile.js');

}

注意:可以使用 defer 屬性闲昭,但不是所有瀏覽器(包括 Firefox)都支持它。

16靡挥、優(yōu)化 CSS 文件

DIV+CSS是現(xiàn)在流利的網(wǎng)頁(yè)布局方式汤纸,DIV定義了元素,CSS控制顯示效果芹血,所以往往我們會(huì)把CSS寫(xiě)到另外一個(gè)或多個(gè)外部鏈接CSS文件中,并且CSS文件代碼也有很多行楞慈,我們可以使用一些CSS壓縮工具來(lái)刪除CSS文件中不必要的多余內(nèi)容幔烛,如重復(fù)定義樣式、空格等來(lái)瘦身囊蓝。

據(jù)馬海祥的經(jīng)驗(yàn)來(lái)說(shuō)饿悬,如果經(jīng)過(guò)適當(dāng)優(yōu)化和維護(hù),CSS 文件不一定很大聚霜。例如狡恬,具有很多獨(dú)立類(lèi)的 CSS 文件會(huì)影響下載速度,與 JavaScript 文件一樣蝎宇,您需要優(yōu)化 CSS 文件弟劲,使其包含所需的所有內(nèi)容,同時(shí)保持合理的大小姥芥。

另外兔乞,使用外部文件代替內(nèi)聯(lián)定義來(lái)適應(yīng)瀏覽器的緩存機(jī)制。

17、使用內(nèi)容分布網(wǎng)絡(luò)

內(nèi)容分布網(wǎng)絡(luò)(Content-distribution network庸追,CDN)是另一種縮短下載時(shí)間的好方法霍骄,當(dāng)您將靜態(tài)圖像放在 Internet 上的許多服務(wù)器上時(shí),用戶(hù)能夠從離他們最近的服務(wù)器下載這些圖像淡溯。

此外读整,大多數(shù) CDN 都在快速服務(wù)器上運(yùn)行,因此無(wú)論服務(wù)器的加載速度如何咱娶,其響應(yīng)速度都比小型的超載服務(wù)器快米间。

18、對(duì)資產(chǎn)使用多個(gè)域來(lái)增加連接

CDN 的另一個(gè)優(yōu)勢(shì)是它們是獨(dú)立的域豺总,因?yàn)槟臑g覽器將并發(fā)連接的數(shù)量限制到一個(gè)單一的域车伞,因此無(wú)論何時(shí)加載一個(gè)頁(yè)面,都很容易占滿(mǎn)所有線(xiàn)程喻喳。因此另玖,到其他資產(chǎn)的連接被延遲了。

然而表伦,您的瀏覽器能夠打開(kāi)新線(xiàn)程或到其他域的連接谦去,這樣,從另一個(gè)域加載的任何資產(chǎn)都可以與其他所有資產(chǎn)同時(shí)加載蹦哼。

19鳄哭、在合適的時(shí)候使用 Google Gears

使用Google Gears是避免用戶(hù)反復(fù)下載同一內(nèi)容的另一種好方法。Gears 允許用戶(hù)離線(xiàn)訪(fǎng)問(wèn) Web 應(yīng)用程序纲熏,但是也允許將頁(yè)面元素持久化到用戶(hù)的計(jì)算機(jī)上妆丘,因此,頻繁加載但未進(jìn)行更新的內(nèi)容可以存儲(chǔ)在 Gears 數(shù)據(jù)庫(kù)中局劲,該數(shù)據(jù)庫(kù)是一個(gè) SQLite3 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)勺拣。對(duì)同一內(nèi)容的所有 next 請(qǐng)求都可以從數(shù)據(jù)庫(kù)(而不是服務(wù)器)直接加載。

20鱼填、使用 PNG 格式的圖像

Graphic Interchange Format (GIF) 和 Joint Photographic Experts Group (JPEG) 圖像格式都已過(guò)時(shí)了:Portable Network Graphic (PNG) 是未來(lái)流行的格式药有。當(dāng)然,您可以說(shuō) GIF 和 JPEG 已經(jīng)消亡苹丸,或者 PNG 沒(méi)有任何缺陷愤惰,但是所有事物都有各自的優(yōu)缺點(diǎn),PNG以最佳的文件大小提供了出色的質(zhì)量赘理,因此宦言,如果進(jìn)行選擇的話(huà),應(yīng)該盡可能使用 PNG 圖像感憾。

21蜡励、保持 Ajax 調(diào)用簡(jiǎn)短令花、準(zhǔn)確

當(dāng)統(tǒng)稱(chēng)為 Asynchronous JavaScript + XML (Ajax) 的技術(shù)在兩年前出現(xiàn)時(shí),這些技術(shù)為處理頁(yè)面請(qǐng)求和響應(yīng)提供了一種革命性方法凉倚。

然而兼都,撥號(hào)用戶(hù)可能從來(lái)沒(méi)機(jī)會(huì)體驗(yàn)其真正的優(yōu)勢(shì),因?yàn)樵谠S多情形下稽寒,Ajax 需要在瀏覽器與服務(wù)器之間大量通信扮碧,因此,如果您能夠保持 Ajax 調(diào)用簡(jiǎn)短和準(zhǔn)確杏糙,可以避免用戶(hù)花費(fèi)無(wú)止盡的時(shí)間來(lái)等待元素刷新或響應(yīng)慎王。

22、進(jìn)行一次較大的 Ajax 調(diào)用并在本地處理客戶(hù)機(jī)數(shù)據(jù)

如果不能進(jìn)行簡(jiǎn)短的 Ajax 調(diào)用宏侍,或者如果這些調(diào)用不能提供期望的結(jié)果赖淤,可以考慮一種替代方法:進(jìn)行一次大的 Ajax 調(diào)用來(lái)獲取所需的一切內(nèi)容,然后讓客戶(hù)機(jī)在本地處理數(shù)據(jù)谅河。通過(guò)這種方式咱旱,客戶(hù)機(jī)只需等待一次(獲取傳入的數(shù)據(jù)),但是在此之后(當(dāng)瀏覽器與服務(wù)器之間沒(méi)有必要通信時(shí))绷耍,處理速度將更快吐限。當(dāng)然,還有大量 Ajax 優(yōu)化技術(shù)褂始,在此诸典,馬海祥就不一一列出了。

23崎苗、在沙箱中測(cè)試代碼

還有一個(gè)經(jīng)常被遺忘的常用技巧狐粱,盡管清醒的 Web 開(kāi)發(fā)人員通常會(huì)在啟動(dòng)應(yīng)用程序之前對(duì)其進(jìn)行測(cè)試,但是有時(shí)候測(cè)試會(huì)使他們不那么重視維護(hù)任務(wù)胆数,或者新功能添加得太快脑奠,并且未經(jīng)過(guò)充分考慮或測(cè)試,結(jié)果幅慌,余下的腳本減緩了應(yīng)用程序的速度。

如果您添加一項(xiàng)新功能轰豆,可以首先在沙箱里(完全脫離了應(yīng)用程序的其余部分)進(jìn)行測(cè)試胰伍,查看它作為單個(gè)函數(shù)的行為。通過(guò)這種方式酸休,您可以反復(fù)檢查骂租,并分析性能和響應(yīng)時(shí)間,無(wú)需考慮 Web 應(yīng)用程序的其余部分斑司。

然后渗饮,當(dāng)新功能的行為符合預(yù)期時(shí),可以將其引入到應(yīng)用程序的其余部分中,運(yùn)行其他測(cè)試互站,保證功能本身的行為符合預(yù)期私蕾。

24、分析站點(diǎn)代碼

在許多場(chǎng)景中胡桃,自我反省是一個(gè)不錯(cuò)的建議踩叭,幸運(yùn)的是,在開(kāi)發(fā)過(guò)程中翠胰,我們可以使用工具來(lái)幫助反省容贝,并盡可能客觀(guān)地進(jìn)行實(shí)踐,像 JSLint(參見(jiàn) 參考資源)這樣的工具的價(jià)值是無(wú)法衡量的之景,盡管其站點(diǎn)宣稱(chēng)它“可能令您備受挫折”斤富,因?yàn)樗蚰峁┝怂械臐撛诖a缺陷,這些缺陷不但使調(diào)試更加困難锻狗,而且可能導(dǎo)致更長(zhǎng)的響應(yīng)時(shí)間满力。

25、檢查孤立的文件和丟失的圖像

檢查孤立的文件和丟失的圖像是一種明智之舉屋谭,大部分 Web 開(kāi)發(fā)人員都會(huì)檢查錯(cuò)誤的文件引用脚囊,但是這里仍然需要說(shuō)明一下,丟失的文件容易引起各種問(wèn)題桐磁,因?yàn)樗鼈儠?huì)導(dǎo)致“The image/page cannot be displayed”之類(lèi)的錯(cuò)誤消息悔耘。

但是在網(wǎng)頁(yè)速度優(yōu)化方面,它們具有更大的缺陷:當(dāng)瀏覽器尋找丟失的或孤立的文件時(shí)我擂,它會(huì)消耗資源衬以,這不可避免地會(huì)導(dǎo)致頁(yè)面處理速度變慢。因此校摩,請(qǐng)檢查孤立或丟失的文件看峻,包括拼寫(xiě)錯(cuò)誤的文件名。

26衙吩、優(yōu)化圖像

圖像能吸引訪(fǎng)客的注意互妓,但是每一張圖片都需要從服務(wù)器下載到訪(fǎng)客的電腦中,這無(wú)疑增加了頁(yè)面的加載時(shí)間坤塞。

因此冯勉,必須優(yōu)化圖像,優(yōu)化方法包括適當(dāng)減小圖片尺寸摹芙,降低圖片的顏色深度灼狰。

27、去掉不必要的插件

一些免費(fèi)的插件能夠增強(qiáng)網(wǎng)頁(yè)的功能浮禾,但是如果添加了過(guò)多的插件交胚,就會(huì)增加服務(wù)器的負(fù)擔(dān)和頁(yè)面加載時(shí)間份汗。

在構(gòu)建頁(yè)面時(shí),去掉不必要的插件蝴簇,用一些內(nèi)置的功能來(lái)代替插件杯活。

28、減少DNS查詢(xún)

DNS查詢(xún)需要花費(fèi)較長(zhǎng)時(shí)間來(lái)返回IP地址军熏,而瀏覽器在查詢(xún)結(jié)果返回之前不會(huì)做任何操作轩猩,具有多種網(wǎng)絡(luò)元素的頁(yè)面,需要進(jìn)行多次的DNS查詢(xún)荡澎,花費(fèi)的時(shí)間更長(zhǎng)均践。

對(duì)此,馬海祥的建議是減少不同域名的數(shù)量摩幔,就會(huì)減少DNS的查詢(xún)彤委,從而加速頁(yè)面加載速度。

29或衡、減少使用重定向

重定向增加了額外的HTTP請(qǐng)求焦影,甚至有時(shí)候鏈向多個(gè)域名或是不存在的頁(yè)面,大大的增減了延遲時(shí)間封断,因此要減少重定向斯辰。

30、使用內(nèi)容分發(fā)網(wǎng)絡(luò)CDN

服務(wù)器在處理大流量的數(shù)據(jù)是十分困難的坡疼,這最終導(dǎo)致頁(yè)面加載速度變慢彬呻。CDN是位于全球不同地方的高性能網(wǎng)絡(luò)服務(wù),它會(huì)復(fù)制你網(wǎng)站的靜態(tài)資源柄瑰,并以最有效的方式來(lái)為訪(fǎng)客服務(wù)闸氮,使用CDN,可以提升頁(yè)面的加載速度教沾。

31蒲跨、把CSS文件放在頁(yè)面頭部,JS文件放在底部

把CSS文件放在頭部可以禁止逐步渲染授翻,節(jié)省瀏覽器加載和重繪頁(yè)面元素的資源或悲,把JS文件放在頁(yè)面底部可以避免代碼執(zhí)行前的等待時(shí)間,從而提升頁(yè)面的加載速度堪唐。

32隆箩、利用瀏覽器緩存

瀏覽器緩存是允許訪(fǎng)客的瀏覽器緩存你網(wǎng)站頁(yè)面副本的一個(gè)功能,訪(fǎng)客再次訪(fǎng)問(wèn)時(shí)羔杨,直接從緩存中讀取內(nèi)容而不需要重新加載,優(yōu)化網(wǎng)站的緩存系統(tǒng)會(huì)降低網(wǎng)站的帶寬和托管費(fèi)用杨蛋。

33兜材、使用CSS Sprites整合圖像

圖像始終是網(wǎng)站優(yōu)化時(shí)的頑疾理澎,可以使用CSS Sprites來(lái)整合多個(gè)圖像到幾個(gè)輸出文件,從而減少下載資源的往返次數(shù)和延遲曙寡,從而提高頁(yè)面的加載速度糠爬。

34、壓縮整合CSS举庶、JS文件減少HTTP請(qǐng)求次數(shù)

壓縮會(huì)移除一些不必要的字符执隧,從而幫助減少文件大小和網(wǎng)頁(yè)后續(xù)的加載時(shí)間。

現(xiàn)在的網(wǎng)頁(yè)都有多個(gè)圖片户侥、CSS外部文件鏈接镀琉、Javascript外部腳本鏈接,所以當(dāng)訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè)時(shí)瀏覽器需要多次向服務(wù)器請(qǐng)求這些文件蕊唐,在請(qǐng)求和加載之間會(huì)產(chǎn)生不少的時(shí)間差屋摔,特別是一些網(wǎng)頁(yè)上有多個(gè)小圖片、圖標(biāo)按鈕的網(wǎng)頁(yè)替梨,有多少圖片钓试,瀏覽器就需要請(qǐng)求多少將這些小文件,多將請(qǐng)求這些小圖片文件將明顯影響網(wǎng)頁(yè)的加載速度副瀑。

所以弓熏,我們應(yīng)該盡可能將小圖片拼合一個(gè)PNG大圖片上,然后通過(guò)坐標(biāo)來(lái)顯示圖標(biāo)糠睡,一次請(qǐng)求一個(gè)大圖片比多次請(qǐng)求小圖片速度要快不少挽鞠。

同樣,最好將CSS和Javascript盡可能地整合到一個(gè)文件中都有助于加快網(wǎng)頁(yè)載入速度铜幽。

35滞谢、啟用GZIP壓縮

在服務(wù)器上壓縮網(wǎng)站的頁(yè)面能很好地提升網(wǎng)站訪(fǎng)問(wèn)速度,GZIP可以幫我們完成壓縮必要資源除抛,從而給用戶(hù)發(fā)送最小的HTML文件和CSS/JS等資源狮杨。

36、服務(wù)器抗壓能力

服務(wù)器抗壓能力通常指的是服務(wù)器所能承受的最大訪(fǎng)問(wèn)人數(shù)到忽,這是一個(gè)硬件指標(biāo)橄教,不過(guò)也可以通過(guò)對(duì)軟件和頁(yè)面的優(yōu)化來(lái)提高服務(wù)器的抗壓能力。

這里的服務(wù)器主要包括兩項(xiàng)喘漏,一個(gè)是http的服務(wù)器(apache或者iis)护蝶,還有一個(gè)是數(shù)據(jù)庫(kù)服務(wù)器。

這是所說(shuō)的優(yōu)化主要是有效減少服務(wù)器的連接數(shù)翩迈、提高程序執(zhí)行效率持灰,比如靜態(tài)化頁(yè)面或者使用緩存可以減少數(shù)據(jù)庫(kù)的壓力,減少頁(yè)面連接數(shù)可以減少http服務(wù)器的壓力等负饲,還可以通過(guò)安裝一些軟件或者模塊來(lái)達(dá)到這個(gè)目的堤魁,比如zend的php加速引擎喂链,以及apc等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妥泉,一起剝皮案震驚了整個(gè)濱河市椭微,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盲链,老刑警劉巖蝇率,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異刽沾,居然都是意外死亡本慕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)悠轩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)间狂,“玉大人,你說(shuō)我怎么就攤上這事火架〖螅” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵何鸡,是天一觀(guān)的道長(zhǎng)纺弊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)骡男,這世上最難降的妖魔是什么淆游? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮隔盛,結(jié)果婚禮上犹菱,老公的妹妹穿的比我還像新娘。我一直安慰自己吮炕,他們只是感情好腊脱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著龙亲,像睡著了一般陕凹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鳄炉,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天杜耙,我揣著相機(jī)與錄音,去河邊找鬼拂盯。 笑死佑女,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播团驱,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼簸呈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了店茶?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劫恒,失蹤者是張志新(化名)和其女友劉穎贩幻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體两嘴,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丛楚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了憔辫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趣些。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贰您,靈堂內(nèi)的尸體忽然破棺而出坏平,到底是詐尸還是另有隱情,我是刑警寧澤锦亦,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布舶替,位于F島的核電站,受9級(jí)特大地震影響杠园,放射性物質(zhì)發(fā)生泄漏顾瞪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一抛蚁、第九天 我趴在偏房一處隱蔽的房頂上張望陈醒。 院中可真熱鬧,春花似錦瞧甩、人聲如沸钉跷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)尘应。三九已至,卻和暖如春吼虎,著一層夾襖步出監(jiān)牢的瞬間犬钢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工思灰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玷犹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓洒疚,卻偏偏與公主長(zhǎng)得像歹颓,于是被迫代替她去往敵國(guó)和親坯屿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評(píng)論 25 707
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案巍扛? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 有1周沒(méi)有寫(xiě)Affiliate的文章了, 今天寫(xiě)一片技術(shù)稿來(lái)安慰下果粒圈的朋友. 文章標(biāo)題寫(xiě)领跛,為Affiliate...
    數(shù)據(jù)科學(xué)閱讀 4,087評(píng)論 0 3
  • 當(dāng)我?jiàn)^戰(zhàn)期考時(shí)吠昭,畢業(yè)班的群雄也都在自己向往的初中里忐忑地考試。 他們?cè)?jīng)無(wú)憂(yōu)無(wú)慮的六年胧瓜,都不復(fù)存在了矢棚。試卷潮水般向...
    吃貨雯子閱讀 184評(píng)論 0 0
  • 喝了口水,驚沒(méi)壓下去府喳,反而思緒總是會(huì)把夢(mèng)繼續(xù)下去蒲肋,甩甩頭,阻止自己繼續(xù)下去钝满,這個(gè)時(shí)候我需要打開(kāi)燈兜粘,打開(kāi)電視,再奢侈...
    幽默感閱讀 187評(píng)論 0 0