Weblap gyorstárazás kliens oldali dinamizmussal
Mark Nottingham a Web 2.0 on Speed című előadásának főbb pontjait emelte ki a nem sokkal később írt blog bejegyzésében. Azt gondolom érdemes áttekinteni a megoldásait. Számomra azért voltak különösen érdekesek, mert mint a php.net egyik webmestere, valamikor az volt a legfontosabb feladatom, hogy úgy vigyek be lehetőleg több dinamizmust a weboldalakba, hogy a gyorstárazás teljesen megmaradjon, tehát minden felhasználói testreszabást kliens oldali megoldással kellett megoldani. Ez eléggé furcsán hangzik az egyik legnépszerűbb szerver oldali nyelv honlapján.
Az igazi gyorsaság viszont csak így érhető el, legalábbis ha már a könnyebb szerver (lighttpd) és a megfelelő HTTP gyorstárazás megoldások tekintetében kitettünk magunkért, mint ahogy a rendszereket kezelő csoport a php.net esetében ezt meg is tette. Erre is kapunk hasznos tippeket a közzétett fóliák között. Persze nem biztos, hogy a könnyebb szerver beállítása minden esetben irányítható folyamat.
Tehát mindenképpen testreszabott tartalmat kell a felhasználó számára biztosítanunk, de a lehető legtöbb gyorstárazható elemmel. Elvégezhetjük ezt funkcionális elven is, JavaScript kódból előhívva a megfelelő tartalmakat, hiszen az AJAX eszköztárunk erre adott. De Mark deklaratívan közelíti meg inkább a kérdést, hiszen ezzel a diszkrét (régebbi, alkalmatlan böngészőkben a funkció degradációját biztosító) megoldás megvalósítható.
Két kész JavaScript eszközt ad a kezünkbe, melyek az oldalban deklaratívan leírt testreszabásra utasító elemeket kezelik. A HInclude egy kliens oldali tartalom betöltés megoldás, alapértelmezett tartalom lehetőségével. Mivel a testreszabott tartalom jellemzően nem felhasználóhoz, hanem felhasználói csoporthoz köthető (adott témájú hírek, árfolyamok, képek, nem pedig személyes üzenetek vannak túlsúlyban), ezért így felhasználói csoportonként gyorstárazhatóak a tartalmak.
Végül már csak az a kérdés, hogy a csoportok számára előállított tartalmakban a felhasználók számára kínált linkek miként kerülnek testreszabásra. Itt jön a képbe Mark másik javaslata az URL Templating, ami
■ Az igazi gyorsaság viszont csak így érhető el, legalábbis ha már a könnyebb szerver (lighttpd) és a megfelelő HTTP gyorstárazás megoldások tekintetében kitettünk magunkért, mint ahogy a rendszereket kezelő csoport a php.net esetében ezt meg is tette. Erre is kapunk hasznos tippeket a közzétett fóliák között. Persze nem biztos, hogy a könnyebb szerver beállítása minden esetben irányítható folyamat.
Tehát mindenképpen testreszabott tartalmat kell a felhasználó számára biztosítanunk, de a lehető legtöbb gyorstárazható elemmel. Elvégezhetjük ezt funkcionális elven is, JavaScript kódból előhívva a megfelelő tartalmakat, hiszen az AJAX eszköztárunk erre adott. De Mark deklaratívan közelíti meg inkább a kérdést, hiszen ezzel a diszkrét (régebbi, alkalmatlan böngészőkben a funkció degradációját biztosító) megoldás megvalósítható.
Két kész JavaScript eszközt ad a kezünkbe, melyek az oldalban deklaratívan leírt testreszabásra utasító elemeket kezelik. A HInclude egy kliens oldali tartalom betöltés megoldás, alapértelmezett tartalom lehetőségével. Mivel a testreszabott tartalom jellemzően nem felhasználóhoz, hanem felhasználói csoporthoz köthető (adott témájú hírek, árfolyamok, képek, nem pedig személyes üzenetek vannak túlsúlyban), ezért így felhasználói csoportonként gyorstárazhatóak a tartalmak.
Végül már csak az a kérdés, hogy a csoportok számára előállított tartalmakban a felhasználók számára kínált linkek miként kerülnek testreszabásra. Itt jön a képbe Mark másik javaslata az URL Templating, ami
href_template
minta szerint elnevezett (nem szabványos) attribútumok használatával lehetővé teszi, hogy (ezesetben) a href
tulajdonság meghatározására egy dinamikus módot adjunk. Így a felhasználó saját azonosítója szerinti linkeket helyezhetünk el az oldalon, melyek így már a kedvencek közé is tehetők, később is az elvárt tartalmat fogják biztosítani.