Bij standaard MVC applicaties is het gebruikelijk dat de View het Model query-t voor de huidige status en die status weergeeft. Dat werkt prima voor server-side webapplicaties omdat je dan toch elke keer de hele "View" (de html pagina) doorgeeft.
Bij Client-side webapplicaties (voornamelijk Javascript) bestaat het probleem dat je niet bij elke wijziging aan je model de hele DOM wilt verversen, dat geeft een te grote performance hit. Ik ben dus opzoek naar een oplossing voor dit probleem, hoe kan je een Javascript MVC app maken die efficiënt met de DOM omgaat en alleen de wijzigen in het model in de DOM doorvoert?
Een optie zou zijn om gebruik te maken van een grote hoeveelheid views waardoor je kleine stukken van de dom maar hoeft aan te passen. Maar dit levert nog steeds wel behoorlijke obstakels op: Stel je hebt een lijst met elementen welke een gebruiker kan sorteren. Hoe zorg je er dan voor dat niet de gehele lijst gedrawt moet worden als de ordening verandert?
Een andere optie zou zijn om de view kennis te geven over de precieze wijzigingen die zijn doorgevoerd. Zodat in het vorige geval in de DOM alleen de sortering aangepast hoeft te worden. Dit heeft echter wel als gevaar dat je moet oppassen dat je model en je view consistent blijven.
Zijn er nog andere, betere oplossingen om dit te bereiken?
Bij Client-side webapplicaties (voornamelijk Javascript) bestaat het probleem dat je niet bij elke wijziging aan je model de hele DOM wilt verversen, dat geeft een te grote performance hit. Ik ben dus opzoek naar een oplossing voor dit probleem, hoe kan je een Javascript MVC app maken die efficiënt met de DOM omgaat en alleen de wijzigen in het model in de DOM doorvoert?
Een optie zou zijn om gebruik te maken van een grote hoeveelheid views waardoor je kleine stukken van de dom maar hoeft aan te passen. Maar dit levert nog steeds wel behoorlijke obstakels op: Stel je hebt een lijst met elementen welke een gebruiker kan sorteren. Hoe zorg je er dan voor dat niet de gehele lijst gedrawt moet worden als de ordening verandert?
Een andere optie zou zijn om de view kennis te geven over de precieze wijzigingen die zijn doorgevoerd. Zodat in het vorige geval in de DOM alleen de sortering aangepast hoeft te worden. Dit heeft echter wel als gevaar dat je moet oppassen dat je model en je view consistent blijven.
Zijn er nog andere, betere oplossingen om dit te bereiken?