我正在使用PHP将LaTeX渲染为png作为CMS的一部分,我需要某种简单的缓存机制,因为它需要服务器大约2秒来渲染png。我使用原始TeX并通过md5函数运行它,然后我将哈希值与当前时间戳一起插入数据库,并使用< hash> .png作为文件名。每次访问图像时,都会更新时间标准。
答案 0 :(得分:2)
对于这种情况,我更喜欢在磁盘上使用临时目录。
根据要求:
if the file doesn't exist
render it to the file
fpassthru() the file from disk
答案 1 :(得分:1)
听起来不错。如果您可以更改.png的名称,数据库ID甚至哈希本身,那么也可以在客户端缓存图像。
答案 2 :(得分:0)
嗯,我认为这是一个很好的方法,但你可能想在哈希之前对LaTeX做一些额外的处理。否则,空格中的更改(以及可能的注释和其他一些内容,具体取决于您的输入方法)将导致不同的哈希值。
此外,更新时间戳的目的是什么?作为批量方法的一部分,删除长时间未访问过的PNG?
答案 3 :(得分:0)
如果.png在渲染后可能会发生变化,我猜你也应该在更新.png时使用某种观察来解释这一点(检查线程,设置方法来更新最后修改过的密钥,或者别的东西:))