2009-02-25 5 views
0

Ich benutze PHP, um LaTeX zu pngs als Teil eines CMS zu machen, ich brauche eine Art von einfachen Caching-Mechanismus, weil es den Server etwa 2 Sekunden dauert, um das PNG zu rendern. Ich nehme den rohen TeX und führe ihn durch die md5-Funktion, dann füge ich den Hash zusammen mit dem aktuellen Zeitstempel in die Datenbank ein und verwende den <Hash> .png als Dateinamen. Bei jedem Zugriff auf das Bild wird das Timestamo aktualisiert.Ist das eine vernünftige Caching-Methode?

+0

Warum dauert es 2 Sekunden, um das PNG zu lang zu rendern? – staticsan

+0

naja wenn es mehrere auf der Seite gibt könnte es leider eine lange zeit dauern – GameFreak

+0

@staticsan zu laden: ... * was *? 2 ganze Sekunden sind nicht zu lang? –

Antwort

0

Hmm, ich denke, es ist ein guter Ansatz, aber Sie werden wahrscheinlich einige zusätzliche Verarbeitung auf dem LaTeX tun, bevor Sie es hacken. Andernfalls würden Änderungen an Leerzeichen (und möglicherweise Kommentaren und einigen anderen Dingen, abhängig von Ihrer Eingabemethode) zu unterschiedlichen Hashes führen.

Auch, was ist der Zweck der Aktualisierung des Zeitstempels? Als Teil einer Batch-Methode, die PNGs entfernt, auf die seit langer Zeit nicht mehr zugegriffen wurde?

+0

Sie haben meine Absicht, den Zeitstempel zu verwenden, richtig verstanden. – GameFreak

1

Das klingt gut. Wenn Sie den Namen des .png ändern könnten, um die Datenbank-ID oder sogar den Hash-Wert anzugeben, damit das Image auch auf der Client-Seite zwischengespeichert werden kann.

+0

Der Dateiname ist der Hash. – GameFreak

+0

Sie haben das in der Frage nicht angegeben. –

+0

Ok ich sehe das Problem. Ich hatte in der Frage .png getippt, aber wurde als HTML-Tag interpretiert und wurde aus dem Post entfernt. Ich werde gehen und es jetzt reparieren. – GameFreak

2

Für diese Art von Szenario verwende ich lieber ein temporäres Verzeichnis auf der Festplatte.

Auf Anfrage:

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

Sie können den Zeitstempel der Datei für die Steuerung der Cache-Regeneration verwenden. – sfossen

0

Wenn die .png ändern könnte, nachdem sie gemacht worden ist, ich denke, Sie auch, dass die Verwendung eine Art von Beobachtung erklären sollte, wenn die .png (Überprüfung Thread aktualisiert wird, Methoden zum Aktualisieren eines zuletzt geänderten Schlüssels oder etwas anderes einstellen :))

Verwandte Themen