2013-05-07 40 views
0

爲了節省我在網站上的時間,我需要在網站上緩存一份報告的副本,以便用戶點擊報告按鈕時可以快速加載報告,而不是每次用戶點擊按鈕。如何緩存需要很長時間才能生成的報告或網頁?

是否有一個首選的機制來存儲報告(這是幾個數字和谷歌圖表)?

我已經考慮過了,我認爲一種方法是運行一個腳本(php或perl)並獲取每日的所有變量。 然後每次用戶點擊報告按鈕時,它都會使用存儲的變量顯示數據並生成Google圖表。

這是一個體面的解決方案還是有標準的做法(也許緩存),這是更好的方法爲用戶節省時間?

+0

mysql會保留查詢緩存的結果,但它聽起來像你想要一個應用程序緩存。很多選項[這是一個簡單的例子](http://www.theukwebdesigncompany.com/articles/php-caching.php) – mconlin 2013-05-07 14:01:38

+0

你有什麼選擇?你可以訪問/更改你的服務器配置嗎?您可以通過將收集的數據存儲到數據庫表中,將數據存儲到文件中,在您的服務器上設置緩存機制來實現此目的。 – 7ochem 2013-05-07 14:02:00

+0

謝謝,所以有2個選項可以緩存返回的SQL結果或應用程序緩存。數據庫表是非結構化的,它們基本上是作爲JSON對象存儲的,那麼這會影響我的決定嗎?或者沒有影響力? – surfer190 2013-05-07 14:05:14

回答

2

您的解決方案對我來說聽起來很完美,假設報告中的信息只需要在定時器上獲取。您可以創建一個運行報告生成腳本的cron作業,並將其輸出寫入report-file.html。當用戶點擊「報告」時,只需將它們鏈接到該文件即可。

您也可以讓用戶選擇重新生成報告並每次簡單覆蓋report-file.html。您甚至可以在各種日期保留多份報告文件。

相關問題