Hi,


Graag zou ik jullie input willen hebben voor het volgende:

Als je een webpagina hebt met een standaard layout en alleen de content van veranderd bijvoorbeeld een content waar een agenda op staat en een waar je een profiel kunt samenstellen. Het zijn 2 verschillende dingen maar de basis is het zelfde, zoals het menu, je footer en.... noem maar op.
Wat is wijsheid om verschillende contents/pagina's in te laden.

PHP include?
AJAX en laad content/pagina als resultaat?
HTML include
Misschien nog een andere methode

Wat zouden jullie doen?


Zie graag jullie input.

Gr. Loek
Ikzelf gebruik een templateparser (Smarty) met een include-functionaliteit voor andere templates. AJAX moet je in mijn ogen gezien alleen gebruiken als je écht niet anders kan.

Enne.... Hoe zie jij een HTML-include voor je?
html 5 bied de mogelijkheid om andere htmls in te laden. Maar dit valt eigelijk meteen al af voor oudere browsers.
Ik heb altijd [php]include[/php] gebruikt voor content.
Tsja, ligt er een beetje aan wat je wilt: fancy "Single Page Application" (SPA) die net een app lijkt, dan is AJAX de weg (vlotte overgangen / niet steeds de pagina herladen). Anders wordt het iets server-side en dan heb je inderdaad fancy template engines of gewoon old-skool include van een header/footer/enz.

Voordeel van die laatste vs SPA is dat je ook veel minder "gedoe" hebt met SEO-en. SEO voor een SPA is een drama (het is eigenlijk één pagina, maar naar Google toe moeten het er opeens meerdere lijken ...).
Voor een dashboard zal SEO niet zo belangrijk zijn, er loggen echter personen in wat het platform kennen toch?
Ik kan er ook voor kiezen gewoon te navigeren naar de juiste html/php file, maar wat is wijsheid?
Als het echt nodig is dat een site wordt laden zonder een zichtbare refresh, dan zou ik voor AJAX gaan.
Denk bijvoorbeeld aan een poll waarbij je direct zonder een volledige pagina-reload de uitlsg wil zien na het maken van je keuze. Of een status die elke xx tijd wordt geüpdated.

In het algemeen zou ik een nieuwe pagestate adviseren, en dus een complete pagina-refresh, waarbij je de delen van de pagina inlaadt met een include(). Het is wel het makkelijkste zodat je altijd de correcte URL hebt. Met AJAX wordt dit al snel lastiger.
Loek Lemmens op 09/10/2018 19:00:57
maar wat is wijsheid?

tl;dr kies wat makkelijk werkt en voldoet aan opgestelde criteria

De vraag is: wat wil je bereiken/maken? Bijvoorbeeld een intranet, zo'n one page ding, iets anders?
En ook: wat is daarbij belangrijk? zoals SEO, toegankelijkheid, etc..

Hier is niet echt een universeel recept voor. Dit is zoiets als op voorhand vragen wat voor gereedschap je nodig hebt, zonder dat je erbij vertelt wat voor klus je wilt verrichten :p. Definieer eerst je doel, en werk daar vanuit terug.

En dan is het handig om alles zo simpel mogelijk te houden en dingen ook maar 1x te doen (Don't Repeat Yourself). Vraag jezelf af of de aangewende techniek(en) -die dus sowieso zouden moeten voorzien in de opgestelde doelen- ook eenvoudig zijn in het gebruik voor:
- het bouwen
- debugging ingeval van problemen
- mogelijke uitbreidingen, en last but not least
- onderhoud

Je kunt dan wel (op voorhand) voor een techniek gaan en jezelf daarmee in een keurslijf wringen, maar als dat vervolgens ontiegelijk onhandig is in de bovengenoemde gevallen dan ben je het jezelf alleen maar moeilijk aan het maken "voor de vorm". Het op voorhand kiezen van een (vast) stuk gereedschap wat niet direct bedoeld is voor de klus... daarmee span je het paard achter de wagen.

De juiste volgorde is:
1. definieer de klus (stel een functionele specificatie op - "wat wil ik bereiken")
2. kies je gereedschap (stel een technische specificatie op - "wat heb ik hiervoor nodig")

Reageren