2009-02-25 5 views
0

私はLaTeXをCMSの一部としてpngにレンダリングするためにPHPを使用していますが、pngのレンダリングに約2秒かかるのでシンプルなキャッシュメカニズムが必要です。私は生のTeXを取り出し、md5関数を通して実行し、現在のタイムスタンプとともにデータベースにハッシュを挿入し、<ハッシュ> .pngをファイル名として使用します。画像にアクセスするたびにタイムスタンプが更新されます。これは合理的なキャッシュ方法ですか?

+0

PNGを長時間レンダリングするのに2秒かかるのはなぜですか? – staticsan

+0

ページにいくつかある場合は、残念ながら読み込みに時間がかかる – GameFreak

+0

@staticsan:... * * *? 2秒は長すぎないのですか? –

答えて

0

ええと、これは良いアプローチだと思っていますが、ハッシュする前にLaTeXでいくつかの追加処理をしたいと思うかもしれません。さもなければ、空白(そしてあなたの入力メソッドに応じて、潜在的にコメントや他のもの)の変化は、異なるハッシュになります。

また、タイムスタンプを更新する目的は何ですか?長い時間アクセスされていないPNGを削除するバッチメソッドの一環として、

+0

あなたは私のタイムスタンプ使用意向について正しいです。 – GameFreak

1

これは問題ありません。 .pngの名前を変更することができれば、データベースIDやハッシュ自体を変更して、イメージをクライアント側にもキャッシュすることができます。

+0

ファイル名はハッシュです。 – GameFreak

+0

あなたは質問にそれを示していません。 –

+0

私は問題を見る。質問に .pngと入力しましたが、はHTMLタグとして解釈され、投稿か​​らは削除されました。 私は今それを修正します。 – GameFreak

2

このようなシナリオでは、ディスク上の一時ディレクトリを使用することをお勧めします。リクエストに

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

キャッシュ再生制御のファイルのタイムスタンプを使用することができます。 – sfossen

0

彼らはレンダリングされてきた後.pngの年代が変わることができれば、私はあなたにも.PNGが更新されるたびにスレッドをチェックする(観察のいくつかの並べ替えを使用して、そのために考慮すべきであると思い、最後に変更されたキーなどを更新するメソッドを設定するなど)

関連する問題