Flickr und das Image Plugin oder “Dees is sowieso blääd”

Bastian Schwarz Datum: 21. September 2011
Autor: Bastian Schwarz


Gerade habe ich ein Problem für unser Kundenprojekt “Holsteinische Schweiz” analysiert:

Im Keyvisual wurden bis zu 20 Flickr-Bilder geladen. Die URLs der Bilder wurden über die Flickr API geholt und dann durch das Image Plugin geladen, entsprechend gerechnet und abgelegt.

So weit, so gut. Nun das Problem: Für den Dateinamenhash benutzt ajaxImage u.a. die Breite und Höhe. Diese wurden für jedes Bild über getimagesize() bezogen. D.h. jedes Bild wurde bei jedem Request erneut geladen und eingelesen, unabhängig davon ob es schon bearbeitet war oder nicht. Bei 20 Bildern entstand so eine serverseitige Ladezeit von ca. 20 Sekunden.

Hier sollten wir uns mal Gedanken über eine bessere Lösung machen (Reicht die URL als ID? Gibt es andere Möglichkeiten, ohne das komplette Bild zu laden? …)

Kommentare erwünscht 😉

Bastian

Kommentare

Axel Güldner

Axel Güldner

– 21. September 2011 / 14:02

So wie ich das sehe, entsteht das Problem, wenn das Bild per getimagesize in php geladen wird, um an Höhe und Breite zu gelangen, sobald keiner oder nur einer der beiden Parameter an das Plugin übergeben wurde.

if(!$width || !$height){
$imageInfo = @getimagesize($url);

Da der darauf folgende Code zur Errechnung des fehlenden Parameters eh nur Sinn macht wenn tatsächlich zumindest ein Parameter gegeben ist und nicht beide fehlen so wie im gegebenen Beispiel, könnte man doch erst einmal den OR-Operator durch ein exklusives Oder ersetzen. Dann würde getimagesize auch nur dann aufgerufen wenn tatsächlich nur ein Parameter angegeben wurde.

Marco

– 4. Oktober 2011 / 06:24

Also eine Höhe und eine Breite wird bei der TZHS ja übergeben.

Die langen Ladezeiten entstehen meiner Meinung nach eher durch die Anfragen an flickr. Ich denke, dass ein Nachladen der Bilder per AJAX hier wohl das beste wäre.

Marco

– 4. Oktober 2011 / 08:53

Nach erneuter Überprüfung habe ich festgestellt, dass die getimagesize immer angefragt wurde, egal ob bereits ein lokales vorhanden war, um die Höhe/Breite eines Bildes zu ermitteln, welche benutzt wurden, wenn diese Angaben nicht direkt an das Plugin übergeben wurden.

Nun wird überprüft, ob eine Höhe und eine Breite an das Plugin übergeben wurden, ist dies der Fall wird ZUERST nachgesehen, ob es bereits ein lokales Bild davon gibt. Ist das der Fall muss die Höhe/Breite nicht mehr vom Server abgefragt werden.

Diese Vorgehensweise sollte die Performance-Probleme damit beheben.

Viele Grüße
Marco

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


WebKit Sibling Bug

Autor: Benjamin Hofmann


Technologie // User Experience & Design


Bei kleineren Anpassungen in einem unserer Projekte ist heute im alten Standard-Browser von Android ein Bug[1] aufgefallen, der dazu führte, dass die Listenelemente mit initial verstecktem Inhalt diesen beim Anklicken nicht anzeigten. Nach einer kurzen Recherche bin ich hier auch auf die Lösung gestoßen, den Checkbox Hack on Mobile Webkit[2]. Klingt fies, ist aber nur …


Beitrag lesen
13.
März
2015

OOP 2014 – Martin Fowler: “Not just code monkeys”

Autor: Marc Kurzmann


Technologie // Über den Tellerrand


Ein Thema, welches mir persönlich sehr am Herzen liegt: jeder sollte sich seiner sozialen/ethischen Verantwortung bewusst sein. Dazu passt der Vortrag von Martin Fowler auf der OOP 2014. “Einer der Keynote-Speaker war Martin Fowler. Er hielt einen eindrucksvollen Vortrag, in dem er auch auf die soziale Verantwortung von Software-Entwicklern einging. Seine Botschaft “Not just code …


Beitrag lesen
10.
Februar
2014

OOP 2015 – Tag 2

Autor: Marc Kurzmann


Technologie // Über den Tellerrand


Heute mach ich’s ein wenig kürzer: Die erste Session war sehr technisch: “Bring Your Technology”; 5 “Gurus” haben nacheinander jeweils ihre aktuell spannendste Technologie vorgestellt, mit der sie sich entweder intensiv beschäftigen, oder die sie zukünftig für sehr interessant halten. Folgende Technologien wurden dabei vorgestellt: Arduino (eine Art Mikrocontroller mit Open-Source-Layout, ideal im Zusammenhang mit …


Beitrag lesen
28.
Januar
2015

ModPagespeed & Kommentare in CSS

Autor: Sascha Nützel


Technologie


Beim gestrigen Tirol Deployment kam es zu interessanten Fehlermeldungen beim CSS Minify über ModPagespeed (Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING im Chrome bzw. 404 in FF/IE). Grund war eine Kommentierung im CSS mittels “//”, bitte verwendet daher im CSS “/* mein lustiger Kommentar */”.  


Beitrag lesen
26.
August
2016