Ik zit met een structuurprobleem in mijn website: enerzijds werk ik met templates zodat telkens dezelfde layout gebruikt, maar ook zijn er soms spcifieke pagina's, bijv. met eerst een verwerking serverside, daarna een deel dat in de head geplaatst wordt en een deel in de body.
stel, ik heb een pagina met veel javascript en serverside verwerking(bijvoorbeeld een embedded google maps)
dan los ik dat op deze manier op:
ik heb een php bestand die altijd geinclude wordt: pagina.php
via pagina.php?pagina=blabla roep ik dan een specifieke pagina op.
in dat bestand dat ik dan include wordt gecheckt of de layout voor die pagina al geladen is, dat doe door te checken of een bepaalde variabele leeg is.
dit gebeurt via deze code
indien de layout dus niet geladen is, wordt eerst de layout geladen, waarna de layoutpagina dan deze pagina include, en dat dus 3 keer doet, één keer voor wat serverside gebeurd, een txeede keer voor de head, een derde keer voor de body.
dus schematisch gebeurt dit:
pagina.php include> eenpagina.php include> layout include> eenpagina.php (3x)
nu weet ik ook dat dit verre van efficiënt is, daarom is mijn vraag, hoe zorgen jullie ervoor dat een pagina telkens zijn eigen serverside verwerking heeft, zijn eigen head gedeelte, eigen body gedeelte maar toch een layout heeft die op elke pagina terugkomt?
(overigens, load is niet echt een probleem (0,01 seconde) maar ik denk dat het nogal omslachtig is om steeds te includen)
stel, ik heb een pagina met veel javascript en serverside verwerking(bijvoorbeeld een embedded google maps)
dan los ik dat op deze manier op:
ik heb een php bestand die altijd geinclude wordt: pagina.php
via pagina.php?pagina=blabla roep ik dan een specifieke pagina op.
in dat bestand dat ik dan include wordt gecheckt of de layout voor die pagina al geladen is, dat doe door te checken of een bepaalde variabele leeg is.
dit gebeurt via deze code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| if(strlen($layoutinclude) > 0) { if($type == "serverpart") { } if($type == "head") { } if($type == "body") { } } else { $layoutinclude = "eenofanderepagina.php"; include("layout.hfi.php"); } |
indien de layout dus niet geladen is, wordt eerst de layout geladen, waarna de layoutpagina dan deze pagina include, en dat dus 3 keer doet, één keer voor wat serverside gebeurd, een txeede keer voor de head, een derde keer voor de body.
dus schematisch gebeurt dit:
pagina.php include> eenpagina.php include> layout include> eenpagina.php (3x)
nu weet ik ook dat dit verre van efficiënt is, daarom is mijn vraag, hoe zorgen jullie ervoor dat een pagina telkens zijn eigen serverside verwerking heeft, zijn eigen head gedeelte, eigen body gedeelte maar toch een layout heeft die op elke pagina terugkomt?
(overigens, load is niet echt een probleem (0,01 seconde) maar ik denk dat het nogal omslachtig is om steeds te includen)