網站選擇偽靜態還是真靜態比較好?(2)
時間:2017-03-12 20:43 來源:未知 作者:好120健康網 人氣:
【導讀】:其次,假設網站生成HTML靜態會對硬盤有損耗這個說法成立,那為什么還會有那么多主流CMS、論壇、網店、博客軟件公司去研發這個功能呢?這個現象是不是反常呢?因為生成HTML靜態功能可能造成用戶硬盤損壞而引起數據丟...
其次,假設“網站生成HTML靜態會對硬盤有損耗”這個說法成立,那為什么還會有那么多主流CMS、論壇、網店、博客軟件公司去研發這個功能呢?這個現象是不是反常呢?因為生成HTML靜態功能可能造成用戶硬盤損壞而引起數據丟失,軟件開發公司是肯定需要承擔相應責任的,應該沒有哪家軟件公司會在增加自己研發成本的基礎上去開發一個對自己有負面影響的功能。所以在軟件行業中“網站生成HTML靜態會對硬盤有損耗”一說法是不成立的。
大家都知道對硬盤的操作主要分為“讀”與“寫”兩大部分,先分析生成HTML靜態對硬盤“讀”的影響:
現在以最常見的PHP動態網站為例,普通的PHP網站的執行過程是先讀取PHP文件、然后根據PHP文件中的代碼讀取數據庫中的數據,最后輸出到訪問者的瀏覽器中進行顯示。在這個執行過程中PHP文件至少讀取一次(如果代碼中包含include之類的語句的話還需要讀取更多次),數據庫至少讀取一次(一般情況下需要讀取多次),在這個過程完成之前一般需要讀取硬盤2-20次左右,當然不同的WEB服務器、數據庫、系統對IO的操作過程也不一樣,但基本可以初步了解到這個實現基本過程。
再來看“生成HTML靜態”網站的執行過程,很明顯執行過程就是直接讀取HTML文件再傳輸到訪問者的瀏覽器進行顯示,對硬盤的讀取操作只有1次。
根據以上分析可以得出結論,“生成HTML靜態”網站只有普通動態網站讀取硬盤頻率的1/10,再加上“生成HTML靜態”網站可以利用瀏覽器的頁面緩存,對硬盤讀取的頻率可以進一步降低,“生成HTML靜態”網站在硬盤的“讀”操作方面沒有任何損傷,反而可以更好的保護硬盤。
明白了生成HTML靜態對硬盤“讀”的影響,我們再來看看生成HTML靜態對硬盤“寫”的影響:
還是以現在最常見的PHP動態網站為例,PHP動態網站在添加文章時直接把數據寫入了數據庫,對硬盤進行了一次寫操作。而“生成HTML靜態”網站在寫入數據庫的同時把數據又寫入了文件,對硬盤進行了兩次寫操作。但在實際項目中,我們只會把修改頻率非常低的內容生成HTML靜態,比如文章、商品內容,這些頁面的寫頻率本身就非常非常低的,比如我們站點發布的文章在發布后幾乎就不會再進行修改了。對于一個擁有10萬篇文章的站點來說,平均一篇文章修改1次,對硬盤的寫入次數也才20萬次,一般服務器硬盤的使用壽命都在5-10年左右,其實再放大數萬倍也不至于達到能夠損傷硬盤的地步。不相信的朋友可以下載DiskCountersView軟件查看一下你自己的電腦在24小時內讀寫硬盤的次數,在普通情況下24小時內讀寫硬盤的次數就會超過了千萬次,如此計算20萬次硬盤寫入幾乎可以忽略不計。
根據以上的分析可以得出結論,“生成HTML靜態”網站比普通動態網站硬盤寫入頻率高2倍,但由于生成“生成HTML靜態”的內容幾乎不會再進行修改,所以對硬盤的寫入次數可以忽略不計,不會對硬盤造成任何損傷。
總結:在最有說話權的IDC行業和軟件行業中“生成HTML靜態頁面對硬盤有損傷”的說法并不成立,而且通過技術分析也證明生成HTML靜態頁面并不會對硬盤造成任何損傷,相反還可以極大的降低對硬盤、數據庫的讀取操作頻率,提高站點訪問速度。
偽靜態和真靜態的評論
真正的靜態化和偽靜態還是有本質的區別的。為瀏覽用戶處理一個純粹html和一個調用多個數據的php在CPU的使用率方面明顯前者少。記得原來有個人說html下載硬盤讀寫頻繁,他這么說好像讀取數據庫不用讀寫磁盤似的,何況還有一大堆緩存的零散php也是放在硬盤的,這些讀取不用磁盤操作么?
讀取單個html+圖片Flash等附件就可以實現的目的,何苦要讀數據庫又要讀php緩存文件又要重新整合數據輸出再+圖片Flash等附件這么大費周章呢?CMS首頁不需要很多的互動的,論壇那一套不應該拿到這里來用,相反應該更多考慮的是:美觀!兼容!信息的直觀!性能!還有穩定!