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