Ik werk aan een website waar alle views (html) serverside gegenereerd worden met twig. Sommige delen van de website worden dynamisch herladen met een simpele ajax call die het html stuk in kwestie vervangt door het nieuwe.
Dit werkt perfect zolang elke ajax response slechts 1 stuk html bevat, maar dus niet als ik vanuit één enkele request 2 stukken html wil terugkrijgen. Ik zou natuurlijk een aparte request kunnen maken voor elk stuk benodigd html, maar dan wordt de server dubbel belast voor iets wat in feite in een enkele bewerking kan.
De meest voor de hand liggende manier om dit probleem op te lossen lijkt me de verschillende html stukken in een JSON object te encoderen:
Een andere mogelijke oplossing lijkt me gebruik maken van <template>/Mustache/Handlebars. Een bijkomend probleem bij deze methode is dat ik de HTML snippets niet meer direct kan includen omdat ze in een template/mustache/handlebars tag gewrapped moeten worden.
Hoe doen anderen het? Zijn er betere manieren; indien ja, hoe en waarom?
Ik wil nog even vermelden dat het specifiek de bedoeling is html van de server terug te krijgen en geen json voor client-side templating.
Dit werkt perfect zolang elke ajax response slechts 1 stuk html bevat, maar dus niet als ik vanuit één enkele request 2 stukken html wil terugkrijgen. Ik zou natuurlijk een aparte request kunnen maken voor elk stuk benodigd html, maar dan wordt de server dubbel belast voor iets wat in feite in een enkele bewerking kan.
De meest voor de hand liggende manier om dit probleem op te lossen lijkt me de verschillende html stukken in een JSON object te encoderen:
code:
1
2
3
4
| return json_encode(array( 'htmlSnippet1' => '<div id="item-1"></div>' 'htmlSnippet2' => '<div id="item-2"></div>' )); |
Een andere mogelijke oplossing lijkt me gebruik maken van <template>/Mustache/Handlebars. Een bijkomend probleem bij deze methode is dat ik de HTML snippets niet meer direct kan includen omdat ze in een template/mustache/handlebars tag gewrapped moeten worden.
Hoe doen anderen het? Zijn er betere manieren; indien ja, hoe en waarom?
Ik wil nog even vermelden dat het specifiek de bedoeling is html van de server terug te krijgen en geen json voor client-side templating.