1、網站全部或大量HTML靜态化
其實大家都知道,效率最高、消耗最小(xiǎo)的就是純靜态化的html頁(yè)面,所以我們盡可(kě)能(néng)使我們的網站上的頁(yè)面采用(yòng)靜态頁(yè)面來實現,這個最簡單的方法其實也是最有(yǒu)效的方法。對于交互性要求很(hěn)高的社區(qū)類型網站來說,盡可(kě)能(néng)的靜态化也是提高性能(néng)的必要手段,将社區(qū)内的帖子、文(wén)章進行實時的靜态化,有(yǒu)更新(xīn)的時候再重新(xīn)靜态化也是大量使用(yòng)的策略,像Mop的大雜燴就是使用(yòng)了這樣的策略,網易社區(qū)等也是如此。
同時,html靜态化也是某些緩存策略使用(yòng)的手段,對于系統中(zhōng)頻繁使用(yòng)數據庫查詢但是内容更新(xīn)很(hěn)小(xiǎo)的應用(yòng),可(kě)以考慮使用(yòng)html靜态化來實現,比如論壇中(zhōng)論壇的公(gōng)用(yòng)設置信息,這些信息目前的主流論壇都可(kě)以進行後台管理(lǐ)并且存儲再數據庫中(zhōng),這些信息其實大量被前台程序調用(yòng),但是更新(xīn)頻率很(hěn)小(xiǎo),可(kě)以考慮将這部分(fēn)内容進行後台更新(xīn)的時候進行靜态化,這樣避免了大量的數據庫訪問請求。
2、圖片服務(wù)器分(fēn)離
大家知道,對于Web服務(wù)器來說,不管是Apache、IIS還是其他(tā)容器,圖片是最消耗資源的,于是我們有(yǒu)必要将圖片與頁(yè)面進行分(fēn)離,這是基本上大型網站都會采用(yòng)的策略,他(tā)們都有(yǒu)獨立的圖片服務(wù)器,甚至很(hěn)多(duō)台圖片服務(wù)器。這樣的架構可(kě)以降低提供頁(yè)面訪問請求的服務(wù)器系統壓力,并且可(kě)以保證系統不會因為(wèi)圖片問題而崩潰,在應用(yòng)服務(wù)器和圖片服務(wù)器上,可(kě)以進行不同的配置優化,比如 apache在配置ContentType的時候可(kě)以盡量少支持,盡可(kě)能(néng)少的LoadModule,保證更高的系統消耗和執行效率。
3、采用(yòng)DIV+CSS的頁(yè)面技(jì )術
可(kě)以訪問的效率得到提高。
4、頁(yè)面長(cháng)度和大小(xiǎo)
一般一個頁(yè)面的長(cháng)度盡量控制在2-3的長(cháng)度,文(wén)件的大小(xiǎo)盡量保持在150K以内。我一直認為(wèi)太長(cháng)的頁(yè)面會使得用(yòng)戶失去耐心。
5、緩存
緩存一詞搞技(jì )術的都接觸過,很(hěn)多(duō)地方用(yòng)到緩存。網站架構和網站開發中(zhōng)的緩存也是非常重要。這裏先講述最基本的兩種緩存。
架構方面的緩存,對Apache比較熟悉的人都能(néng)知道Apache提供了自己的緩存模塊,也可(kě)以使用(yòng)外加的Squid模塊進行緩存,這兩種方式均可(kě)以有(yǒu)效的提高Apache的訪問響應能(néng)力。
網站程序開發方面的緩存,Linux上提供的MemoryCache是常用(yòng)的緩存接口,可(kě)以在web開發中(zhōng)使用(yòng),比如PHP有(yǒu)Pear的Cache模塊對一些數據進行緩存和通訊共享,其它我就不熟悉了。
6、鏡像
鏡像是大型網站常采用(yòng)的提高性能(néng)和數據安(ān)全性的方式,鏡像的技(jì )術可(kě)以解決不同網絡接入商(shāng)和地域帶來的用(yòng)戶訪問速度差異,比如ChinaNet和 EduNet之間的差異就促使了很(hěn)多(duō)網站在教育網内搭建鏡像站點,數據進行定時更新(xīn)或者實時更新(xīn)。在鏡像的細節技(jì )術方面,這裏不闡述太深,有(yǒu)很(hěn)多(duō)專業的現成的解決架構和産(chǎn)品可(kě)選。也有(yǒu)廉價的通過軟件實現的思路,比如Linux上的rsync等工(gōng)具(jù)。
7、盡量不使用(yòng)Flash和大圖片
這樣好處是非常明顯的,一個能(néng)夠使得用(yòng)戶專注在文(wén)字上,而圖片部分(fēn)都和網站核心相關,不會産(chǎn)生無關的東西。
8、不要将整個頁(yè)面内容塞到一個Table中(zhōng)
這是網頁(yè)設計的問題了,很(hěn)多(duō)站長(cháng)為(wèi)了追求頁(yè)面統一對齊,将整個頁(yè)面的内容都塞進了一個Table(表格)裏,然後再由單元格td來劃分(fēn)各個“塊”的布局,這種網站的顯示速度是絕對慢的。因為(wèi)Table要等裏面所有(yǒu)的内容都加載完畢後才顯示出來的,如果某些内容無法訪問,就會拖延整個頁(yè)面的訪問速度。正确的做法是:将内容分(fēn)割到幾個具(jù)有(yǒu)相同格局的Table中(zhōng)去,不要全都塞到一個Table裏。