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?
Antwort
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?
Sie haben meine Absicht, den Zeitstempel zu verwenden, richtig verstanden. – GameFreak
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.
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
Sie können den Zeitstempel der Datei für die Steuerung der Cache-Regeneration verwenden. – sfossen
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 :))
- 1. ist dies eine vernünftige Ziellast für SQLite?
- 2. Was ist eine vernünftige Preis-API-Lösung für ein Startup?
- 3. Ist Vala eine vernünftige Sprache im Vergleich zu C++?
- 4. Refactoring Javascript Event Handler - ist das eine vernünftige Sache zu tun?
- 5. Welche OpenOffice-Version hat eine vernünftige Javascript-Unterstützung?
- 6. Gibt es eine vernünftige Möglichkeit, Bildschirmschoner in Linux zu hemmen?
- 7. Linux-Software verpacken und dabei eine vernünftige Dateistruktur beibehalten
- 8. Eine vernünftige Anzahl von gleichzeitigen, asynchronen Ajax-Anfragen
- 9. Ist das eine vernünftige Architektur für einen Netzwerkserver mit mehreren Benutzern? (Wie viel Aufwand tut Rohre Parallelität einzuführen?)
- 10. Ist es eine vernünftige Praxis, Haskell-Datenstrukturen auf der Festplatte zu serialisieren, nur mit Show/Read
- 11. Wann ist es NIH vs. eine vernünftige Investition der Zeit zu sein?
- 12. Maximale vernünftige Größe für StemCompletion in tm?
- 13. Ist das eine Schleife?
- 14. Ist das wirklich eine Vereinfachung?
- 15. Ist das eine schlechte Programmierpraxis?
- 16. Ist das eine korrekte Kindspezifikation?
- 17. versucht, vernünftige Werte von scipy powerlaw fit zu bekommen
- 18. Wie teilt man Diazo-Regeln auf vernünftige Weise?
- 19. Wo ist der vernünftige Ort, um Antwortdaten in redux zu ändern?
- 20. So erzwingen Sie Felder in der erweiterten Suche, um eine vernünftige Breite zu erhalten
- 21. Was ist das Verhalten von scala.concurrent.ExecutionContext.Implicits.global?
- 22. Wann kann Mehrfachvererbung die einzig vernünftige Lösung sein?
- 23. Gibt es mit Rscript eine vernünftige Möglichkeit, die Ausgabe ohne Skript zu unterdrücken?
- 24. Wie mache ich vernünftige "Set-Differenz" in Ruby?
- 25. Wie findet man eine vernünftige Größe für einen Datenbankverbindungspool und wie man ihn verifiziert?
- 26. Ist das eine schlechte Übung? C++
- 27. Ist das eine gute Beschreibung von Unicode?
- 28. Ist das Gießen eine teure Operation?
- 29. Sitecore - Ist das eine 'interne' Seite?
- 30. Was ist das für eine Javascript-Notation?
Warum dauert es 2 Sekunden, um das PNG zu lang zu rendern? – staticsan
naja wenn es mehrere auf der Seite gibt könnte es leider eine lange zeit dauern – GameFreak
@staticsan zu laden: ... * was *? 2 ganze Sekunden sind nicht zu lang? –