2009-02-25 95 views
0

我使用PHP將LaTeX渲染爲png作爲CMS的一部分,我需要某種簡單的緩存機制,因爲它需要服務器大約2秒來渲染png。我使用原始TeX並通過md5函數運行它,然後將散列和當前時間戳一起插入數據庫,並使用<散列> .png作爲文件名。每次訪問圖像時,timestamo都會更新。這是一個合理的緩存方法嗎?

+0

爲什麼需要2秒來渲染PNG太長? – staticsan 2009-02-26 00:26:40

+0

好,如果頁面上有幾個可能需要很長時間才能加載 – GameFreak 2009-02-26 16:16:35

+0

@staticsan:... *什麼*? 2整秒不是太長? – 2009-03-03 06:43:28

回答

0

嗯,我認爲這是一個很好的方法,但是在散列之前你可能會想對LaTeX做一些額外的處理。否則,空格(以及可能的註釋和其他一些事情,取決於您的輸入方法)的更改會導致不同的哈希值。

此外,更新時間戳的目的是什麼?作爲刪除長時間未訪問的PNG的批處理方法的一部分?

+0

您對我使用時間戳的意圖是正確的。 – GameFreak 2009-02-25 22:16:21

1

這聽起來很好。如果您可以更改.png的名稱來說,數據庫ID或散列本身,以便圖像可以緩存在客戶端。

2

對於這種情況,我更喜歡在磁盤上使用臨時目錄。

根據要求:

if the file doesn't exist 
    render it to the file 
fpassthru() the file from disk 
0

如果他們已經被渲染後的可能改變巴紐,我想你也使用某種每當巴紐被更新(檢查線觀察的應占的是,設置方法來更新最後修改的密鑰或其他東西:))

相關問題