Hallo, lieber Forum Benutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via https://slack.com/ viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen bei Fragen/Problemen aktuell die Frage (zusätzlich) im Slack zu stellen. Dort sind viele kompetente REDAXO Benutzer aktiv und beantworten gerne (Anfänger)Fragen.

Selbst einladen kannst Du dich hier: http://redaxo.org/slack/

Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Interceptor
Beiträge: 17
Registriert: 18. Feb 2016, 10:47

Template: thumbnails.php verzögert stark das laden der Seite

28. Apr 2016, 22:09

Hallo zusammen,

Ich bräuchte bitte noch einmal eine Hilfestellung von der netten Redaxo-Community :-D

Unter "Allgemeines" hatte ich gestern und heute ein Problem geschildert: die Seite bleibt etwa 8-12 Sekunden "weiß" bevor überhaupt der erste Inhalt angezeigt wird.

Den Übeltäter hatte ich nach langem Suchen gefunden: thumbnails.php.
Diese .php wurde in jedem Template im Kopf eingebunden. Testweise deaktiviert auf allen Templates und schwupps rennt die Seite. Haken: bei neuen hochgeladenen Bildern werden dann keine Thumbs und Bilder erstellt/angezeigt. Also zu früh gefreut.

Funktion und Inhalt von thumbnails.php wenn ich den Code richtig lese in wenigen Worten:
1. function resizeImage
2. switch ($image_filetype)
3. image_fix_orientation

Bei jeden Aufruf prüft er die Tabelle "Bilder", ob vorgegeben Formate/Größen von jedem Bild vorhanden sind, wenn vorhanden dann ok, sonst Punkt 1, 2, und 3 und entsprechend Thumbs in 10, 400 und 1000 erstellen.

Da mittlerweile über 130 Bilder in der Gallery sind (Anzahl eher stark steigend) dauert der Prozess lange und verzögert den Start der ganzen Seite. Das geht so natürlich nicht.

Da hat mein Programmierer wohl nicht drüber nachgedacht als er das (ein)gebaut hat. Wie kann ich das umgehen oder lösen?

Hab nur Lösungen gefunden wie: "versteckte Seite einbauen mit eigenem Template was die php aufruft und Seite immer selber starten und somit generieren lassen". Habe ich mal fix umgesetzt und funktioniert natürlich. Aber ich kann ja nicht laufend schauen ob neue Bilder da sind und direkt immer die verstecke Seite zum generieren aufrufen. Geht das nicht geschickter?

Zum Beispiel ins Uploadformular einbauen ? (Wobei dann der Upload lange verzögert wird) Oder unter "Aktionen" den Code aus der Thumbnails.php irgendwie rein oder im Hintergrund automatisieren?

Bin ja bestimmt nicht der erste mit einer Bildergallery der vor diesem Problemchen steht.

Herzlichen Dank nochmal für ein paar Tipps.

VG Oliver

EDIT: was mir gerade einfällt: kann ich dem Uploadformular nicht die Funktion anhängen, immer die 3 benötigen Thumbs zu erstellen und fertig? Oder muss ich immer einen Komplettabgleich mit der gesamten Tabelle machen?

Benutzeravatar
_DSP_
Beiträge: 125
Registriert: 18. Jul 2007, 11:29
Wohnort: Stuttgart
Kontaktdaten: Website

Re: Template: thumbnails.php verzögert stark das laden der S

2. Mai 2016, 16:31

Ich kann nicht 100% folgen, was genau das Problem ist, aber wie sieht es mit nem Cronjob aus? Der checkt dann deine Special-Seite in nem fixen Intervall und macht entsprechend, was du sonst machen würdest.
----------------------
Rex rockt!
http://www.medienfeuer.de

Interceptor
Beiträge: 17
Registriert: 18. Feb 2016, 10:47

Re: Template: thumbnails.php verzögert stark das laden der S

3. Mai 2016, 16:12

Hallo _DSP_,

super, habe ich gar nicht dran gedacht. Vielen Dank. Cronjob hab ich schnell eingerichtet und der aktualisiert nun jede Minute einmal. Funktioniert soweit und als bessere Zwischenlösung gut :)

Für die "richtige Lösung" aber nochmal eine Zusammenfassung:

1. Auf der Seite ist eine Gallery mit Thumbnails.
2. Ein Benutzer kann Bilder hochladen. Das Formular ist über der Gallery. Nach dem hochladen wird die Startseite mit der Gallery neu angezeigt.
3. Nun soll direkt auch das Thumbnail angezeigt werden

Wenn die Thumbnails.php nicht aktiv ist, wird ein weisses Feld (Bild fehlt) beim Thumbnail angezeigt.
Erst wenn die PHP einmalig ausgeführt wurde, wurde das entsprechende Thumbnail auf dem Server generiert und hinterlegt.

Mit Cronjob ist die Position nun maximal 60-70 Sekunden ohne Thumb - aber auch das ist natürlich zu lange. Das Bild muss direkt nach hochladen angezeigt werden.

Das Script war bisher im Kopf jedes Templates eingebaut. Sprich vor dem Laden jeder Seite hat er immer das Script ausgeführt und die komplette Tabelle durchsucht und bei bedarf generiert - darauf musste jeder Besucher immer warten (8-9 Sekunden).

Ich hoffe ich konnte es noch etwas genauer darstellen. Vielen Dank für deine Rückmeldung.

Benutzeravatar
JeGr
Beiträge: 63
Registriert: 15. Jun 2013, 16:50

Re: Template: thumbnails.php verzögert stark das laden der S

17. Mai 2016, 10:10

Interceptor hat geschrieben:Hallo _DSP_,

super, habe ich gar nicht dran gedacht. Vielen Dank. Cronjob hab ich schnell eingerichtet und der aktualisiert nun jede Minute einmal. Funktioniert soweit und als bessere Zwischenlösung gut :)
Hallo Interceptor,

bitte bitte tu deinem Hoster/Server einen Gefallen und mach das nicht ;) Einen Cron alle Minute auszuführen ist für mich/uns normalerweise eine Grund genau nachzuforschen, was das eigentlich soll, denn irgendetwas brachial jede Minute vom Server zu verlangen hat viel Potential für zukünftige Deadlocks, Überschneidungen oder sonstige Fehler, gerade dann, wenn Prozesse nicht sauber isoliert laufen. Wenn dein PHP Skript jetzt 15-20s läuft, mag für dich 1m noch OK sein, aber wenn es mal aus Versehen 59-61s läuft und plötzlich zweimal nebeneinander anfängt zu laufen, fangen die richtig spaßigen Dinge an! Also lieber alle 5 Minuten, das ist oftmals auch mehr als ausreichend. (Natürlich mag es Gründe geben für 1min aber meistens gibt es die nicht ;))

Andere Frage: Warum nutzt du bei der Gallery (selbst geschrieben? Modul? Addon?) nicht einfach die Thumbnail-Erzeugung über den (jetzt Addon) Image Manager? Warum baust du das umständlich mit einer extra Thumbnail Datei? Der Sinn von Addons wie bspw. dem IM ist ja gerade dass das Bild on demand einmal erzeugt wird und danach gecached ausgeliefert und vorgehalten wird. Zudem muss das dann nicht umständlich mit ins Template integriert werden, sondern der Bildlink für das Thumbnail muss nur entsprechend genutzt werden. Alles weitere geschieht dann im Hintergrund plus du musst nicht (so hört es sich an) jedes Mal alle Thumbnails neu erzeugen.

Grüße

Zurück zu „Templates/Navigationen [R4]“