Excuses voor de ietwat vage omschrijving, ik ben niet zo vaak actief met programming. Hierna zal ik het probleem misschien wat omslachtig omschrijven
korte omschrijving: Ik ben bezig een drupal module te schrijven die een simpele gallery moet gaan voorstellen. Bestaande modules voldoen niet aan mijn eisen, en een standalone pakket is geen optie. Deze gallery moet, op basis van een vooraf gedefineerd pad, een album structuur opbouwen die ook in dat pad aanwezig is:
Voor die gallery heb ik een aantal voorwaardes, waarvan er twee van belang zijn voor dit topic, namelijk lazy-loading (thumbnails maken en cachen als deze niet bestaan, en record aanmaken in db), en *tromgeroffel* snelheid. De db record heb ik (volgens mij) absoluut nodig om allerlei sorting options, ratings etc mogelijk te maken.
Nou snap ik wel dat deze twee elkaar een beetje in de weg staan (alleen uit de db lezen is natuurlijk een stuk sneller), maar vroeg ik me af of ik de meest efficiente structuur te pakken heb, en zo nee, wat anders kan om te optimaliseren. Een voorbeeld:
korte omschrijving: Ik ben bezig een drupal module te schrijven die een simpele gallery moet gaan voorstellen. Bestaande modules voldoen niet aan mijn eisen, en een standalone pakket is geen optie. Deze gallery moet, op basis van een vooraf gedefineerd pad, een album structuur opbouwen die ook in dat pad aanwezig is:
code:
1
2
3
4
5
6
| -fotos --map1 ---foto1 ---foto2 --map2 ---foto3 |
Voor die gallery heb ik een aantal voorwaardes, waarvan er twee van belang zijn voor dit topic, namelijk lazy-loading (thumbnails maken en cachen als deze niet bestaan, en record aanmaken in db), en *tromgeroffel* snelheid. De db record heb ik (volgens mij) absoluut nodig om allerlei sorting options, ratings etc mogelijk te maken.
Nou snap ik wel dat deze twee elkaar een beetje in de weg staan (alleen uit de db lezen is natuurlijk een stuk sneller), maar vroeg ik me af of ik de meest efficiente structuur te pakken heb, en zo nee, wat anders kan om te optimaliseren. Een voorbeeld:
- User bezoekt url die correspondeert met een bepaald submap in de fotomap
- code bouwt array op met alle bestanden aanwezig in die submap
- code haalt alle map gerelateerde records uit de db
- code vergelijkt db waardes met array van mapbestanden, en filtert op nieuwe/verwijderde bestanden
- code update de db met de nieuwe records, en delete de verwijderde fotorecords
- code cached nieuwe thumbnails en delete verwijderde thumbnails
- code bouwt het album op en toont het aan de user
edit:
Waar ik zelf nog aan gedacht heb:
Array van bestanden vergelijken met array van cache ipv db, thumbnail maken en cachen, daarna pas db updaten. Dit klinkt voor mij als een iets andere, maar net zo snelle weg naar hetzelfde doel....
Waar ik zelf nog aan gedacht heb:
Array van bestanden vergelijken met array van cache ipv db, thumbnail maken en cachen, daarna pas db updaten. Dit klinkt voor mij als een iets andere, maar net zo snelle weg naar hetzelfde doel....
[ Voor 5% gewijzigd door Kiphaas7 op 10-06-2009 01:28 ]