有些網(wǎng)站訪問速度非常慢,以至很多用戶不等網(wǎng)站頁面的打開,就關(guān)掉瀏覽器,那么我們?nèi)绾蝸斫鉀Q這個(gè)問題?下面我從低成本、高性能和高擴(kuò)張性的角度來說說我的一些經(jīng)驗(yàn)。可以加我微信13143641678
1、網(wǎng)站全部或大量HTML靜態(tài)化
其實(shí)大家都知道,效率、消耗小的就是純靜態(tài)化的html頁面,所以我們盡可能使我們的網(wǎng)站上的頁面采用靜態(tài)頁面來實(shí)現(xiàn),這個(gè)簡單的方法其實(shí)也是有效的方法。對于交互性要求很高的社區(qū)類型網(wǎng)站來說,盡可能的靜態(tài)化也是提高性能的必要手段,將社區(qū)內(nèi)的帖子、文章進(jìn)行實(shí)時(shí)的靜態(tài)化,有更新的時(shí)候再重新靜態(tài)化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網(wǎng)易社區(qū)等也是如此。
同時(shí),html靜態(tài)化也是某些緩存策略使用的手段,對于系統(tǒng)中頻繁使用數(shù)據(jù)庫查詢但是內(nèi)容更新很小的應(yīng)用,可以考慮使用html靜態(tài)化來實(shí)現(xiàn),比如論壇中論壇的公用設(shè)置信息,這些信息目前的主流論壇都可以進(jìn)行后臺管理并且存儲再數(shù)據(jù)庫中,這些信息其實(shí)大量被前臺程序調(diào)用,但是更新頻率很小,可以考慮將這部分內(nèi)容進(jìn)行后臺更新的時(shí)候進(jìn)行靜態(tài)化,這樣避免了大量的數(shù)據(jù)庫訪問請求。
2、圖片服務(wù)器分離
大家知道,對于Web服務(wù)器來說,不管是Apache、IIS還是其他容器,圖片是消耗資源的,于是我們有必要將圖片與頁面進(jìn)行分離,這是基本上大型網(wǎng)站都會(huì)采用的策略,他們都有獨(dú)立的圖片服務(wù)器,甚至很多臺圖片服務(wù)器。這樣的架構(gòu)可以降低提供頁面訪問請求的服務(wù)器系統(tǒng)壓力,并且可以保證系統(tǒng)不會(huì)因?yàn)閳D片問題而崩潰,在應(yīng)用服務(wù)器和圖片服務(wù)器上,可以進(jìn)行不同的配置優(yōu)化,比如 apache在配置ContentType的時(shí)候可以盡量少支持,盡可能少的LoadModule,保證**的系統(tǒng)消耗和執(zhí)行效率。
3、采用DIV+CSS的頁面技術(shù)
可以訪問的效率提高。
4、頁面長度和大小
一般一個(gè)頁面的長度盡量控制在2-3的長度,文件的大小盡量保持在150K以內(nèi)。我一直認(rèn)為太長的頁面會(huì)使得用戶失去耐心。
5、緩存
緩存一詞搞技術(shù)的都接觸過,很多地方用到緩存。網(wǎng)站架構(gòu)和網(wǎng)站開發(fā)中的緩存也是非常重要。這里先講述基本的兩種緩存。
架構(gòu)方面的緩存,對Apache比較熟悉的人都能知道Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進(jìn)行緩存,這兩種方式均可以有效的提高Apache的訪問響應(yīng)能力。
網(wǎng)站程序開發(fā)方面的緩存,Linux上提供的MemoryCache是常用的緩存接口,可以在web開發(fā)中使用,比如PHP有Pear的Cache模塊對一些數(shù)據(jù)進(jìn)行緩存和通訊共享,其它我就不熟悉了。
6、鏡像
鏡像是大型網(wǎng)站常采用的提高性能和數(shù)據(jù)***性的方式,鏡像的技術(shù)可以解決不同網(wǎng)絡(luò)接入商和地域帶來的用戶訪問速度差異,比如ChinaNet和 EduNet之間的差異就促使了很多網(wǎng)站在教育網(wǎng)內(nèi)搭建鏡像站點(diǎn),數(shù)據(jù)進(jìn)行定時(shí)更新或者實(shí)時(shí)更新。在鏡像的細(xì)節(jié)技術(shù)方面,這里不闡述太深,有很多的現(xiàn)成的解決架構(gòu)和產(chǎn)品可選。也有廉價(jià)的通過軟件實(shí)現(xiàn)的思路,比如Linux上的rsync等工具。
7、盡量不使用Flash和大圖片
這樣好處是非常明顯的,一個(gè)能夠使得用戶專注在文字上,而圖片部分都和網(wǎng)站核心相關(guān),不會(huì)產(chǎn)生無關(guān)的東西。
8、不要將整個(gè)頁面內(nèi)容塞到一個(gè)Table中
這是網(wǎng)頁設(shè)計(jì)的問題了,很多站長為了追求頁面統(tǒng)一對齊,將整個(gè)頁面的內(nèi)容都塞進(jìn)了一個(gè)Table(表格)里,然后再由單元格td來劃分各個(gè)“塊”的布局,這種網(wǎng)站的顯示速度是**慢的。因?yàn)門able要等里面所有的內(nèi)容都加載完畢后才顯示出來的,如果某些內(nèi)容無法訪問,就會(huì)拖延整個(gè)頁面的訪問速度。正確的做法是:將內(nèi)容分割到幾個(gè)具有相同格局的Table中去,不要全都塞到一個(gè)Table里。
總結(jié):在這里介紹得比較淺顯,具體實(shí)現(xiàn)過程中很多細(xì)節(jié)還需要大家在工作中慢慢熟悉和體會(huì)。另外,推薦一個(gè)在線的網(wǎng)頁讀取速度測試工具給大家,它可以顯示整個(gè)讀取進(jìn)程,細(xì)化到每個(gè)網(wǎng)頁元素。對今天小編的分享還滿意嗎?可以電話咨詢我13143641678
TAG標(biāo)簽:
免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:93624862@qq.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載。