有些網(wǎng)站訪問速度非常慢,以至很多用戶不等網(wǎng)站頁面的打開,就關(guān)掉瀏覽器,那么我們?nèi)绾蝸斫鉀Q這個(gè)問題?下面我從低成本、高性能和高擴(kuò)張性的角度來說說我的一些經(jīng)驗(yàn)??梢约游椅⑿?3143641678
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)站都會采用的策略,他們都有獨(dú)立的圖片服務(wù)器,甚至很多臺圖片服務(wù)器。這樣的架構(gòu)可以降低提供頁面訪問請求的服務(wù)器系統(tǒng)壓力,并且可以保證系統(tǒng)不會因?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)為太長的頁面會使得用戶失去耐心。
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ù)方面,這里不闡述太深,有很多專業(yè)的現(xiàn)成的解決架構(gòu)和產(chǎn)品可選。也有廉價(jià)的通過軟件實(shí)現(xiàn)的思路,比如Linux上的rsync等工具。
7、盡量不使用Flash和大圖片
這樣好處是非常明顯的,一個(gè)能夠使得用戶專注在文字上,而圖片部分都和網(wǎng)站核心相關(guān),不會產(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)容無法訪問,就會拖延整個(gè)頁面的訪問速度。正確的做法是:將內(nèi)容分割到幾個(gè)具有相同格局的Table中去,不要全都塞到一個(gè)Table里。
目前,通過微信小程序開發(fā)來建設(shè)企業(yè)的線上商城成為了...……
微信小程序開發(fā)經(jīng)過一年的發(fā)展已經(jīng)越來越受歡迎,支付...……
微信小程序開發(fā)可以幫助微商在微信上建設(shè)自己的商城系...……
網(wǎng)站優(yōu)化服務(wù) 會包含哪些工作?今天很從心seo在和...……
通過微信小程序開發(fā)建設(shè)企業(yè)的商城系統(tǒng)目前已經(jīng)成為許...……
現(xiàn)在隨著時(shí)代的快速發(fā)展,商家想要快速找到新的流量來...……