Door
Robin Valk
op 03-07-2012 10:45
gewijzigd op 03-07-2012 10:46
1.490 views
Hey,
Ik heb een boekenwinkelgemaakt voor mijn vader maar ik merk dat de plaatjes wat langzaam laden. Is het sneller als ik elke keer als de pagina laat een thumbnail maken voor de plaatjes of moet ik een keer een thumbnail laten maken van alle plaatjes en die opslaan in bijv. een database?
Ik zou gebruik maken van PHPThumb. Die legt zelf een cache aan zodat bestanden niet meerdere keren gegenereerd worden en je hebt de vrijheid in het gebruik van allerlei maten. Daarnaast hoef je de afbeelding alleen maar te uploaden en daarna geen bewerkingen te doen.
Ik zou gebruik maken van PHPThumb. Die legt zelf een cache aan zodat bestanden niet meerdere keren gegenereerd worden en je hebt de vrijheid in het gebruik van allerlei maten. Daarnaast hoef je de afbeelding alleen maar te uploaden en daarna geen bewerkingen te doen.
Zo te zien laad je nu het hele plaatje en resize je dat door de image een height mee te geven. Dat is inderdaad niet de beste optie.
Wat je kan doen is het plaatje 'on the fly' resizen server side via een scriptje dat server side het plaatje inleest, resized en dan pas naar de browser stuurt.
Of, je kan inderdaad vooraf al van alle plaatjes tumbnails maken en die laden.
Bij het laatste zou ik dat NIET in een database stoppen, maar gewoon een prefix of suffix in de tumbnail geven. Als je bijvoorbeeld een plaatje 'plaatje1.jpg' hebt, dan de tumbnail de naam 'plaatje1_tmb.jpg' geven. Zo kan je op basis van het origineel altijd de tumbnail vinden.
Het grote probleem denk ik persoonlijk dat het de maten is van je plaatjes.
Als ej in je bron kijkt zie ik dat je met inline style heigth=125 mee hebt gegeven.
Als je de plaatjes opent in nieuwe table dan zie je dat de plaatjes vele malen grote zijn. Als een pagina dan te veel plaatjes moet laden dan kan hier enige vertraging in zitten. Wat je aandraagt over de thumb's lijkt mij daarom ook een goede oplossing voor het probleem.
Ik neem aan dat je ze hebt geupload met een admin panel of iets. Misschien is het een idee als je orignele plaatjes wilt behouden dat je een upload script er in zet die ook thumb's maakt van de plaatjes op de maten die je zelf wilt. Dit zal het laden van de plaatjes moeten verbeteren.
Het liefste zou ik on the fly willen doen omdat het minder ruimte in beslag neemt
Dat lijkt me niet meteen het grote probleem, noch het goede argument.
Die paar kilobytes extra gaan het verschil niet maken.
Wat wel het verschil maakt, is de data-transfer en de processor van de server.
On the fly betekent dat je ofwel de hele image moet doorsturen naar de gebruiker
ofwel moet php in actie treden; voor elke thumb apart.
Als je 30 thumbs toont, die via de GD library worden geresized, betekent dat een hoop werk.
Op voorhand thumbs maken, betekent dat je dit maar 1 keer moet doen.
Bij het uploaden van nieuwe boeken is het het beste om meteen een thumbnail erbij te maken en voor de boeken die al geüpload zijn moet ik dat even met een apart scriptje doen.
Als je 30 thumbs toont, die via de GD library worden geresized, betekent dat een hoop werk.
Als ja, alleen door caching zal dat niet vaak gebeuren. Beide genoemde standaard scripts cachen de thumbs (server side) waardoor je niet vaak 30 thumbs on the fly hoeft te genereren.