[PHP/JS] menu uit client geheugen ipv laden v. pagina

Pagina: 1
Acties:

  • marqvds
  • Registratie: Oktober 2003
  • Laatst online: 13:32
Ik heb een OSCommerce website gemaakt waar ik gebruik maak van een zelf gemaakt 'uitschuif' menu met productcategoriën. Omdat deze winkel erg veel producten en (sub)categoriën heeft en het menu op iedere pagina opnieuw wordt geladen vroeg ik mij of of het mogelijk is deze eenmalig in het geheugen van de client te laden. Dit zou niet alleen veel laadtijd schelen maar ook veel dataverkeer.

Suggesties zijn altijd welkom :*)

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Je kunt een javascript array met de producten in een los bestand kunnen zetten, als het goed is wordt die client side gecached (mits je de cache headers goed hebt staan en de client het ook echt cached).

Verwijderd

Hoe werkt dat menu precies? Gaat het om een los javascript bestandje, deze worden namelijk wel in de temp van de gebruiker opgeslagen, maar indien de gebruiker dit niet aan heeft staan ben je toch echt altijd veroordeeld tot het herladen hiervan. Andere dingen die me te binnen schieten, gebruik Ajax voor het laden van de content, of gebruik een iframe in plaats van het opnieuw laden van de complete pagina.

  • marqvds
  • Registratie: Oktober 2003
  • Laatst online: 13:32
Het menu is opgebouwd op DIV's. Elke categorie bestaat uit een div voor de titel en een div voor de subcategoriën. De subcategoriën worden standaard niet weergegeven (display:none). Zodra er op de titel geklikt wordt vouwt hij uit en worden de subcategoriën zichtbaar.

Het gaat om zo'n 15 hoofdcategoriën die gemiddeld over zo'n 10 subcategoriën beschikken. Gemiddeld bevatten 5 daarvan weer een subcategorie.

Als ik met PHP een pagina include zal deze nooit gechached worden maar met javascript misschien wel inderdaad. Ik zal het eens proberen.

Nu ben ik al een beetje aan het experimenteren met AJAX maar ben nog geen voorbeelden tegengekomen die hiervoor bruikbaar zouden zijn.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 15:03
André schreef op woensdag 07 februari 2007 @ 15:31:
Je kunt een javascript array met de producten in een los bestand kunnen zetten, als het goed is wordt die client side gecached (mits je de cache headers goed hebt staan en de client het ook echt cached).
De vraag is of dat wenselijk is in verband met toegankelijkheid voor gebruikers, maar zeker ook voor zoekmachines.

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
djluc schreef op woensdag 07 februari 2007 @ 16:13:
De vraag is of dat wenselijk is in verband met toegankelijkheid voor gebruikers, maar zeker ook voor zoekmachines.
Ik zou --denk ik-- experimenteren met een mix van huidig systeem en voorstel André:

• Wanneer de pagina opent worden er sowieso al een 'uitgeklapte' category getoond.
---> Die includen we via PHP (of whatever) in de HTML
• De andere (minder relevante voor die pagina) menu-items worden dynamisch adh van het js ingevoegd (via DOM-fie's en de externe data-JS-file etc )

Dom idee?

  • marqvds
  • Registratie: Oktober 2003
  • Laatst online: 13:32
Zou het een idee zijn om de submenu's die niet worden weergegeven dmv AJAX bij het openen van het submenu te laden?
Met de techniek zoals het ook hier gebruikt wordt: http://www.dhtmlgoodies.com/scripts/ajax-dynamic-articles/ajax-dynamic-articles.html??

Hierdoor zal het waarschijnlijk niet gescanned worden door zoekmachines maar scheelt het wel veel laadtijd en dataverkeer.

Graag jullie mening hierover.

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Als je nou in een hidden iframe je menu inlaadt als statische HTML pagina (juiste cache headers meezenden), en die onload transferred naar de parent.$('menuContainer').innerHTML ? Dan ben je volgens mij in 1x klaar en indexeren de browsers je site ook nog netjes :)

Stop uploading passwords to Github!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:11

crisp

Devver

Pixelated

PPK heeft pas nog een artikel op zijn blog gezet hoe hij dit probleem heeft opgelost. Hoewel ik het technisch misschien iets anders op zou lossen (ik zou kijken of ik bepaalde 'markers' in de sitenavigation pagina kan zetten zodat ik met een string-functie snel het stukje benodigde content eruit kan vissen ipv door de DOM van die pagina te lopen) is het wel een aardige oplossing :)

Intentionally left blank

Pagina: 1