Ik ben bezig met een site specifiek voor op de iPad en hierdoor wil ik de site zo licht mogelijk houden.
Nu heb ik 'vaste' data met keuze opties (36), wat in de toekomst uitgebreid kan worden naar ongeveer 100 opties:
Sportief, Comfort, Imago, Uitstraling, Model, enz...
De opties staan op een pagina die bij elke keer aanroepen gebruikersgegevens uit de database haalt, waarbij dus ook de gekozen opties worden opgehaald.
Nu kan ik elke keer 36 tot 100 rijen uit de database halen om de selectie lijst te creëren of een json bestand maken met alle opties erin die ingeladen moet te worden.
Dan is hier eindelijk mijn vraag (waarvan ik bijna het antwoord denk te weten, maar toch de mening van iemand anders wil horen): Wat is sneller, de 36 tot 100 rijen uit de database halen of het json bestand inladen.
De data uit uw SQL tabel halen is server-side, JSON file inladen is clientside. Uiteraard is het performanter om enkel de gerelateerde data op te halen via JSON en de opbouw van de interface client-side te doen, maar is iets meer werk natuurlijk
Vergeet niet onderscheid te maken tussen clientside 'lichtheid' of serverside 'lichtheid'.
Wat bedoel je precies met het inladen uit JSON? Laat je dit door javascript parsen of ook door PHP? In het eerste geval: hier zou ik niet voor kiezen, dit kost de iPad alleen maar rekenkracht die de server ook kan doen. In het tweede geval: ik denk dat MySQL hier een betere optie is, eventueel met wat caching.
In principe moet je ervoor zorgen dat je website serverside altijd zo licht mogelijk is. Om voor smartphones en tablets een betere gebruikservaring te bieden kan je er echter wel voor kiezen om wat extra werk door de server te laten doen.
@Joost: als je dan JSON laat parsen door PHP, dan blijft de serverside load hetzelfde, nietwaar? En dan moet er alsnog evenveel rommel doorgestuurd worden naar de iPad over de mobiele verbinding.
Ik zou eigenlijk gewoon voorstellen dat je werkt met tools à la JQueryMobile of iWebKit, en op die manier wordt de JS die ervoor zorgt dat het mobile-achtig lijkt gecached, en wordt enkel gestructureerde HTML-data verstuurd. Zo doe ik het momenteel nu toch met een project voor verkopers-op-de-baan die met die fancy dingen willen rondlopen
Ik heb op dit moment een json bestand gemaakt die direct na het inloggen wordt ingeladen en laat parsen door php. Hierdoor wordt het bestand maar één keer ingeladen totdat de site refreshed, wat in principe niet door de gebruiker gedaan kan worden.
@Joost: als je dan JSON laat parsen door PHP, dan blijft de serverside load hetzelfde, nietwaar? En dan moet er alsnog evenveel rommel doorgestuurd worden naar de iPad over de mobiele verbinding.
Ja, maar dan moet de ipad alleen nog maar uitlezen, en niet verwerken..
@Joost: als je dan JSON laat parsen door PHP, dan blijft de serverside load hetzelfde, nietwaar? En dan moet er alsnog evenveel rommel doorgestuurd worden naar de iPad over de mobiele verbinding.
Klopt, maar aangezien ik niet helemaal uit het topic kon halen of de JSON nou door javascript of PHP werd geparsed.. ik denk dat JSON parsen misschien zelfs langzamer is dan gewoon iets uit MYSQL database halen, maar dat zou je moeten meten voordat je dat zeker weet. (En de vraag of data uitlezen uit MYSQL of JSOn nou sneller is is ook niet relevant voor een website zo snel mogelijk maken voor een iPad, meer iets voor webdevelopment in het algemeen).
Vergeet ook niet dat verschillende kleinere requests sneller zijn dan 1 grote. Vooral naar mobiele toestellen op een mobiel netwerk zijn veel kleine (asynchrone) request een must in mijn ogen.
Vergeet ook niet dat verschillende kleinere requests sneller zijn dan 1 grote. Vooral naar mobiele toestellen op een mobiel netwerk zijn veel kleine (asynchrone) request een must in mijn ogen.
Goed om te weten, ik haal nu namelijk 5 detail pagina's via ajax in een keer op, maar het is dus beter om de 5 pagina's één voor één op te halen? Dus elke keer als ik op 'volgende' klik de volgende pagina ophalen?
Wat ik in dat geval zou doen is 1 pagina laden en als die gedaan is en volledig zichtbaar is, de volgende via ajax al gaan cachen. (dit is wel in het geval dat je al weet wat de volgende pagina gaat zijn uiteraard.)
Je zou ook wel als de connectie idle is, de extra data (of details in jouw geval) gaan ophalen.