PHP include vraagje
17 april 2011 - 12:14    reactie #25
geplaatst door: Steve07
Nee, dat klopt niet. Ajax scheelt laadtijd, omdat je alleen de inhoud inlaad, maar PHP includes schelen geen laadtijd, ze zorgen zelfs dat de pagina een heel klein beetje langzamer laad, omdat de server zelf nog logica moet uitvoeren. De enige reden om includes te gebruiken is dat het makkelijker te onderhouden is. Dit is ook logisch, omdat PHP server-side draait: de gebruiker heeft niet door dat de pagina eigenlijk vanuit een ander bestand wordt ingeladen.

Als je een kleine speedbump wil zal je toch Ajax moeten gebruiken, en om je website ook beschikbaar te maken voor gebruiker die Javascript uit hebben staan, zal je uiteindelijk toch bij mijn methode eindigen. :satisfied:

Wat begrijp je niet aan mijn code? Moet ik meer uitleggen?

PHP include vraagje
17 april 2011 - 12:20    reactie #26
geplaatst door: Kapotlood
Waar ik 't vooral om doe is dat de pagina's sneller laden en dat 't laden zelf niet de hele pagina opnieuw inlaad en voor zo'n knipper-effect zorgt. Eigenlijk een beetje zoals www.lifehacker.com de pagina nu laad. Ik heb ook even verder geGoogled en 't lijkt er inderdaad op dat AJAX "the way to go" is.

't Is niet zozeer dat je code onduidelijk is hoorÂ… als ik andere websites die zoiets dergelijks hebben bekijk komt 't redelijk overeen. 't Probleem is dat ik totaal geen PHP of AJAX ken; ik kan 't herkennen en soms wat values aanpassen, maar bijvoorbeeld zoiets als [/i]"var page = $(this).attr('name')"[/i], daar snap ik (nog) helemaal niets van, hehe. 't Is net alsof je dan wilt uitleggen wat een Chinees karakter betekent, :)

Op de lange termijn wil ik 't wel leren, maar html en css zijn nog even wat belangrijker voor ik met de backend talen begin ;) Aan de andere kant, als je 't wilt uitleggen... héél graag natuurlijk! Alle kleine beetjes die ik snap helpen :-)

Mvg,
Joram

(Bewerkt door joram om 12:21, 17-04-2011)

PHP include vraagje
17 april 2011 - 12:29    reactie #27
geplaatst door: Steve07
Dat klopt, sites zoals lifehacker gebruiken Ajax. De reden de je PHP includes ook moet gebruiken is dat het de makkelijkste manier is om te zorgen dat je content ook zichtbaar is voor gebruikers die geen javascript ondersteunen.

Mijn code hier is ook niet perfect. Allereerst gebruik ik hier jQuery (het is dus niet helemaal standaard Javascript code). Hierdoor kan je veel makkelijker dit soort dingen (en animaties) doen, maar er moet wél telkens een hele Javascript library ingeladen worden die redelijk groot is. Op zich is dit niet zo'n groot probleem, omdat een heel groot deel van de sites dit gebruikt (waaronder Google). Die linken allemaal naar hetzelfde bestand op de site van Google, waardoor die bij vrijwel iedereen als gecacht is (natuurlijk kan je dat bestand ook op je eigen server hosten).

Ten tweede doe ik geen error handling voor de includes (wat eigenlijk wel moet) en ben ik vergeten hashes toe te voegen bij een klik op een link (hierdoor komt een d.m.v. Ajax geladen pagina ook goed terecht in de bookmarks. Ik ga mijn code zo even updaten om dit te verbeteren.

Oké, nu jouw vraag. Met $(this).attr('name') krijg je de inhoud van het html-attribuut "name". Op die manier krijg je de naam van de pagina die geladen moet worden. Die naam moet je dus ook bij elke link in je navigatiebar in het attribuut "name" zetten.

Edit: code verbetert.

(Bewerkt door Frog