ugrás a tartalomhoz

Reflektorfényben a tartalmak prioritása

Joó Ádám · 2010. Ápr. 16. (P), 17.09
Az elmúlt napokban előtérbe került a lekért tartalmak prioritása a böngészőfejlesztők közt. A Mozilla és a Google is újítást tervez ezen a területen, előbbi a gyorsítótárba kerülő, utóbbi az AJAX-on keresztül elért állományok súlyozásával.

Egy multimédiás tartalmat kiszolgáló oldal vagy komolyabb kliensoldali szkriptekkel hajtott alkalmazás esetén a felhasználói élmény szempontjából kritikus lehet az erőforrások betöltésének sorrendje, melynek súlyozására a böngészők eddig egyedi heurisztikákat vetettek be.

A Mozilla szervezésében lezajlott Web Caching Summit rendezvényen a résztvevők (Facebook, Google, Microsoft, Twitter, Yahoo, SproutCore, Palm) arra a kérdésre kerestek választ, hogyan lehetne hatékonyabbá tenni a böngésző gyorsítótárát, figyelembe véve, hogy a tapasztalatok szerint gyakran az akár egy éves lejárati idővel ellátott erőforrások is ismét lekérésre kerülnek minden egyes látogatásnál.

Az összejövetel eredménye tömören összefoglalva: a böngészőknek sürgősen meg kell növelniük a gyorsítótár méretét, a Mozilla pedig ígéretet tett a gyorstárazott tartalmak implicit (stíluslapok és szkriptek előnyben a képekkel szemben), vagy akár explicit, fejlesztők által meghatározott súlyozási lehetőségeinek megvizsgálására.

Időközben a Mike Belshe, a Google Chrome-on és a SPDY protokollon dolgozó mérnöke is tett egy javaslatot a W3C levelezőlistáján az XMLHttpRequest objektumon keresztül zajló forgalom súlyozására.

A Google által javasolt API:

interface XMLHttpRequest {
 // XMLHttpRequest Priorities.
 const unsigned short CRITICAL = 0;
 const unsigned short HIGH = 1;
 const unsigned short LOW = 2;
 const unsigned short LOWEST = 3;

 // Set the load priority for this request.
 void setPriority(unsigned short priority);
}
Példa a használatára:

var client = new XMLHttpRequest;

client.setPriority(HIGH);
client.open('GET', 'demo.cgi');
client.send();
A CRITICAL jelöléső erőforrások elsőbbséget élveznének a többivel szemben, melyek betöltése szünetel, míg ezek meg nem érkeztek, majd csökkenő fontossági sorrendben következik a többi. A megoldás visszafelé kompatibilis, a Google már használja többek közt Maps szolgáltatásában.