當(dāng)我最近在HotBot工作并試圖加速我的網(wǎng)頁時(shí),我花了很多時(shí)間查看其它網(wǎng)站,想從他們的成功和失敗中學(xué)點(diǎn)什么。我學(xué)到很多如何使頁面裝載和繪制很快的方法,但是也發(fā)現(xiàn)非常多的沒有必要的臃腫的東西。
基于我所發(fā)現(xiàn)的和沒有發(fā)現(xiàn)的,我總結(jié)了一些使網(wǎng)頁緊縮的方法。既然你已經(jīng)使你的圖像和表格盡可能地苗條,現(xiàn)在讓我們看看優(yōu)化網(wǎng)站的最后一關(guān)。
與松弛做斗爭(zhēng)的最后防線我理解找到完美方法實(shí)現(xiàn)好的設(shè)計(jì)使廣告商高興和每個(gè)頁面可用是多么的困難。但是我希望設(shè)計(jì)者最好避免海嘯般的連接。
很多出版商(如ZDNet和CNET)因?yàn)檫B接太多而使網(wǎng)頁阻塞-每頁上都有大量指向其它頁和其它網(wǎng)站的連接。我甚至在我們自己的后院發(fā)現(xiàn)了同樣的問題(或者是不是可以說我們的前門?)。
這樣的交叉連接通常是考慮到市場(chǎng)的原因:讓讀者知道同一公司的其它內(nèi)容和站點(diǎn)。但是你也不必象一個(gè)人類問題專家那樣認(rèn)為網(wǎng)頁上連接越多,單個(gè)連接被訪問的機(jī)會(huì)越少。經(jīng)過10個(gè)左右連接后,讀者趨向于只讀頁中間的文章。這些未讀、未被接觸的“連接農(nóng)場(chǎng)”可以占到網(wǎng)頁HTML的一半。并且,不象logo和icon駐留在cache里,調(diào)用每頁時(shí),它們重新下載。
這些連接背后的長(zhǎng)URL的累加也很可觀。AltaVista為附加查詢結(jié)果頁的“1 2 3 … 20”(在每個(gè)查詢結(jié)果頁的底部)連接就要浪費(fèi)4KB的HTML。通過實(shí)現(xiàn)更短、更少的URL,最近AltaVista重新進(jìn)行了設(shè)計(jì),把連接的尺寸平均減少到1KB。結(jié)果是,通過撥號(hào)modem的頁面下載速度明顯提高(就金錢和常識(shí)來說,意味著客戶更愉悅,每分鐘的頁面點(diǎn)擊率越多)。
一些同樣的網(wǎng)站也為放入大量的交叉連接感到內(nèi)疚。有時(shí)他們故意這么做來增加頁面點(diǎn)擊率,但是通常可以加一個(gè)附加的頁來容納其它用戶感興趣的內(nèi)容。
如果你不想讓讀者下載他們不需要的字節(jié),同時(shí)又不希望他們退回去重新下載讀過的頁面,那么你知道他們無論如何也要一頁。所以要研究你的服務(wù)器日志,發(fā)現(xiàn)用戶點(diǎn)擊最多和最少的是什么。刪掉沒人讀的內(nèi)容,把它們替換為日志數(shù)據(jù)證明有必要的信息。
把JavaScript/” target=”_blank”>JavaScript當(dāng)作垃圾
很多網(wǎng)猴認(rèn)為頁面中的JavaScript/” target=”_blank”>JavaScript不使頁面變慢。然而,JavaScript/” target=”_blank”>JavaScript是一種解釋語言,而不是編譯語言-這意味著它被裝載后還要被分析。我們習(xí)慣于在HotBot中使用JavaScript/” target=”_blank”>JavaScript函數(shù)使瀏覽者的鍵盤輸入聚焦到文本輸入框內(nèi)。這樣 桓齪??掛趁嫻淖霸孛饗員瀆??詞顧?某踔允俏?思鈾儼檠??
檢查你頁面中的JavaScript/” target=”_blank”>JavaScript,看看它是如何影響裝載和初始化時(shí)間的。如果你用JavaScript/” target=”_blank”>JavaScript控制plug-in或dHTML,應(yīng)該查看用戶手冊(cè)看看這些組件是如何使用的。你可能會(huì)發(fā)現(xiàn)你的20行的JavaScript/” target=”_blank”>JavaScript程序可以用一個(gè)內(nèi)置的裝載和運(yùn)行更快的函數(shù)來替代。我們就犯過這樣的錯(cuò)誤:我們用JavaScript/” target=”_blank”>JavaScript寫了一個(gè)“NextTen”函數(shù)來改變裝載到MSIE4的一個(gè)表中的內(nèi)容。后來我們知道IE的內(nèi)置nextPage函數(shù)比它快10倍,而且當(dāng)它運(yùn)行時(shí)不會(huì)使頁面混亂。如果你的讀者遇到過這樣的麻煩,試試這個(gè)函數(shù)-對(duì)每個(gè)人都有利。
扔掉小技巧、計(jì)數(shù)器和其它活動(dòng)的部分
坦白地說,關(guān)心你的網(wǎng)站的訪問人數(shù)的人不會(huì)很多(如果是一些令人印象很深的數(shù)字,可以在你的頁面中編碼,當(dāng)它突變時(shí)再更新之)。初始化Java并裝入一個(gè)applet只是使頁面中的一些文本滾動(dòng)-這樣的頁面不值得去等。今年早些時(shí)候,CNN通過移去它的Java大字標(biāo)題把頁面裝載速度從50秒減少到20秒。
你是怎么想的?- CNN的點(diǎn)擊率和觀眾份額會(huì)增加還是減少?
測(cè)試你的網(wǎng)頁
在過去的四天里,我們?yōu)槟闾峁┝撕芏嗉铀倬W(wǎng)頁的方法。為了能讓用戶能有所體會(huì),你需要為網(wǎng)頁制定一些行為標(biāo)準(zhǔn)并實(shí)行之。
制定你的標(biāo)準(zhǔn)
別只自問:“網(wǎng)頁現(xiàn)在有多快?”并試圖進(jìn)行改善。應(yīng)該問“頁面應(yīng)該有多快?”?;蛘邷p少用戶的等待時(shí)間,或者讓用戶覺得他們的等待是值得的。
制定合理指導(dǎo)方針的最佳方法是檢查你的競(jìng)爭(zhēng)對(duì)手的網(wǎng)站。查找與你的網(wǎng)站提供相同內(nèi)容、服務(wù)、價(jià)值等的網(wǎng)站,研究它們的表現(xiàn)。請(qǐng)教你們公司市場(chǎng)部、銷售部或其它部門的人,讓他們?cè)u(píng)價(jià)你的競(jìng)爭(zhēng)對(duì)手的網(wǎng)站??梢赃M(jìn)行一次角色扮演:把你自己當(dāng)成一個(gè)用戶,進(jìn)行一次網(wǎng)上漫游。
當(dāng)你確定了要查看哪些網(wǎng)站后,確定你要進(jìn)行到哪里?;蛟S整個(gè)頁面裝載完,但是或許應(yīng)該確定某個(gè)特定條目的裝載時(shí)間(例如,一個(gè)新網(wǎng)站的頂部標(biāo)題)。我們研究過的一些站點(diǎn)非常好:
在頁面完成裝載之前,用戶可以看到一些很重要的東西。
網(wǎng)站優(yōu)化教程(4)
當(dāng)我最近在HotBot工作并試圖加速我的網(wǎng)頁時(shí),我花了很多時(shí)間查看其它網(wǎng)站,想從他們的成功和失敗中學(xué)點(diǎn)什么。我學(xué)到很多如何使頁面裝載和繪制很快的方法,但是也發(fā)現(xiàn)非常多的沒有必要的臃腫的東西。 基于我所發(fā)現(xiàn)的和沒有發(fā)現(xiàn)的,我總結(jié)了一些使網(wǎng)頁緊縮的方
