thinkphp靜態緩衝和純靜態有哪些區別?

來源:互聯網
上載者:User
最近寫了個小程式,採用thinkphp

自己手動寫了產生靜態html模組,有後台批量手動產生。

後來發現,tp架構有靜態緩衝功能,也就是緩衝之後php通過路徑去讀取真實html檔案。

請問這兩走方法有哪些優點和缺點呢?

回複內容:

最近寫了個小程式,採用thinkphp

自己手動寫了產生靜態html模組,有後台批量手動產生。

後來發現,tp架構有靜態緩衝功能,也就是緩衝之後php通過路徑去讀取真實html檔案。

請問這兩走方法有哪些優點和缺點呢?

兩者有一個共同的目的,減少伺服器的高並發處理和資料庫負載的其中一個方法。
在國內呢,網站靜態化還有一個目的就是為了“投搜尋引擎所好”,從而能更好的SEO最佳化。(其實,我個人認為搜尋引擎對靜態或者動態網頁面並沒有特別區分與偏好。控制好頁面關鍵詞效果都一樣)。

你文中所描述的兩者儲存介質都是磁碟,前者“靜態化”,其實沒php什麼事了,只是在伺服器端這些檔案都是由php控制生產而已,使用者都是直接存取的靜態頁面。

而後者“文本緩衝”的可控性更高。可定義緩衝的到期時間,頁面的局部緩衝等等,從而更優的去控制內容更新等等。使用者最後訪問到的還是php動態網頁面,由php再去解釋該怎麼做,是直接讀取file檔案呢,還是緩衝已經到期需要再重建下。

如果是大一點的網站,頁面的大資料量對磁碟的消耗和維護也是很頭疼的。

另外
我沒有用過Thinkphp,但是按照我瞭解的一些php架構來看。基本上都會提供不少緩衝適配器的驅動。

可以替換成更優的方案,比如:
使用memcached(記憶體對象緩衝)。這其實與文本緩衝過程類似,只是儲存介質換成記憶體。讀取速度當然更快。

再比如Alternative PHP Cache、Xcache、eAccelerator等等,這類緩衝方案可以叫做php加速器。不同於上面所說的 檔案儲存體和memcached記憶體Object Storage Service。具體的可以看這裡哪種php加速器最靠譜APC,XCache,eAccelerator,文中的幾個外鏈可以點過去看看。其中有一篇介紹了他們的類似執行流程。

我推薦使用緩衝方案。 網站的靜態化處理個人感覺蠻“醜陋”的。

其實我後面說的緩衝,有點偏離你說的“tp架構有靜態緩衝功能”。你這裡說應用可能是tp提供的一個輸出緩衝也就是將整頁模式進行一個整塊檔案儲存體,它幫你做了更細緻的檔案產生控制,比如產生為html尾碼的檔案。你可以再細緻的看看tp的手冊,特別的看看緩衝的部分。

緩衝要好些.
1.緩衝是訪問即產生.
2.靜態是不論是否訪問, 都需要提前產生. 以後維護模版很難. 更新資料量很大的時候,要費很長時間.

緩衝是儲存在記憶體裡,靜態是儲存在硬碟裡的HTML檔案
速度來講,緩衝是比靜態要快的。

緩衝能更及時,至於哪個好,還是得看你伺服器的記憶體情況了,如果記憶體小,那還是要酌情考慮要放到緩衝裡。

不清楚thinkphp的緩衝具體實現,但是從你的描述,『PHP代碼讀取真實HTML檔案』效率上是有問題的。應該由webserver來處理這部分讀取,而不用PHP代碼參與

推薦Google一下x-sendfile

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.