2009-04-08 116 views
4

我有一個網站是動態的,從數據庫生成大量數據,但數據庫的內容很少變化(約爲1-3倍一週)。這些更改是手動和控制的。生成「動態」網站的靜態版本的最佳方法

而不是動態網站的開銷,我寧願使用靜態頁面。我辯論什麼是最好的解決辦法:

捲曲/ wget的/蜘蛛

question提到它。我看到的缺點可能是:

  • 手動清理需要(鏈接,圖像丟失等)
  • 不能混用

代理

我可以靜態和動態頁面使用代理將靜態頁面緩存一定天數。缺點:

  • 難以管理的每個頁面的緩存
  • 需要每次手動更改後清除緩存?

使用程序生成靜態頁面

我現在的選擇:我用Perl程序來生成動態內容的靜態頁面。這不能很好地擴展,因爲我必須對許多HTML進行硬編碼,尤其是頁面結構

其他任何方式來完成它?你會/你喜歡什麼?

回答

4

Memcache基礎全頁緩存,具有很長的過期時間。 Tag extension可能允許您僅使選定範圍的頁面無效。

+0

Waht你會用來從memcache提供頁面嗎? – Julien 2009-04-08 22:26:30

+0

手頭上,nginx webserver支持memcache。使用腳本始終是一種選擇。 – epochwolf 2009-04-08 23:26:00

+0

@ Julien:關於任何事情。你用什麼服務動態頁面? – vartec 2009-04-09 07:22:34

2

任何特定的原因,你想這樣做,而不是隻是建立一個database caching解決方案停止查詢實際上必須擊中數據庫?

是否可能取決於您網站上的動態數據量以及您的服務器中可用的內存量,但不會有任何您擔心的問題。

1

我會像現在這樣做,使用腳本生成靜態頁面。您可以使用模板系統來避免每次都編寫新的HTML。

0

您還沒有提及將數據更改儘快顯示給用戶的重要性。

我們已經成功地爲我們的網站使用了代理緩存來處理動態頁面,從而獲得大量點擊。根據我們希望客戶看到更新數據的時間,我們爲每個類別保留不同的緩存時間。