Haszprus

JavaScript

©   Haszprus   |   ajax fejlesztés javascript

Érdekes módon nem nagyon alkalmazzák a weblapok a js nyújtotta előnyöket. És most egyáltalán nem az ajaxra gondolok, sőt, van hogy amit ajaxszal oldanak meg, azt egyszerű kliens oldali js-sel még gyorsabbá lehetne tenni, akar a halál kommunikálni a szerverrel, azok a fránya csomagok elég lassan terjednek.


Szóval pl. egy keresés, filterezés esetén logikus, hogy ajax, ugye? Hát nem feltétlen. Ha nem nagy az adathalmaz amiben keresünk, nyugodtan letölthetjük az egészet a kliens gépére már az oldalletöltéskor, aztán js-sel szépen kliens oldalon elszórakozgatunk vele. Sokkal gyorsabb, hiszen teljes mértékig elimináljuk a kommunikációt a szerverrel.

Érdekes módon például webgalériákban elég kézenfekvő lenne, hogy a galériába (albumba) belépéskor letöltse mind a száz kép adatait, és a továbbiakban a kliens oldalon oldja meg a lapozást pl. Száz kép adata belefér tíz KB-ba, egy kép meg ugye már önmagában legalább 10x ekkora, tehát nem beszélhetünk az adatok által okozott kellemetlen letöltési időről.

Másik példa. Itt van ez az ajaxos privmsg kereső nekünk. Miért ajaxos? Fene tudja. Hiszen letölthetné a user összes privmsg-ét a gépre, aztán kapna szép realtime search-öt delayes helyett. Persze ha valakinek ténylegesen többszáz KB-nyi privmsg-e van (amit mondjuk előzetesen szerver oldalon kimérünk), akkor nem tölttetjük azt le vele, kap ajaxot.

Na mindegy, a lényeg tképpen a webgalérián van, szinte érthetetlen számomra hogy ezek az esetek többségében miért cache-elés nélkül vannak megvalósítva, és miért kell új oldalt letölteni a képek közti lapozáshoz. Nem akarok várni egy tizedmásodpercet se a következő képre. Nálam is ilyen most a private gallery, de hamarosan lecserélem js-esre. Egyedül a linkek új ablakban nyithatóságára kell kitalálnom valamit, azt már megoldottam hogy az url tükrözze az aktuálisan mutatott képet. (Tehát hogy ne legyen statikus az url annak ellenére, hogy egyazon weblapon tartózkodik a user mindvégig.)

És vizsgaidőszakban nem kéne fejlesztenem.

RSS: hozzászólások ehhez a bejegyzéshez 4 hozzászólás

Szólj hozzá Te is!

Meg nem mondom, hogy a nagy, publikus galeriszájtok melyikén láttam ezt, de: előre-hátra lapozgatás AJAX-szal (de lehet, hogy csak sima <img src> meg <a href> átírós cucc (ekkor nyilván a pontos adatokat mind le kell tölteni előre), aztán a böngésző majd letölti a frissen megjelent thumbnaileket), ami történetesen az URL végére egy számozott anchort biggyeszt (#1, #2 stb.), ami érdekes módon közvetlen beütésre is a helyes oldalt hozza.

Hogy JS kikapcsolásával mit csinál, nem tudom, nem próbáltam (majd eszembe jut, hol is volt ez, akkor megnézem). Gondolom az URL gyökeres megváltoztatása (/1, /2 a végére) az kb. ugyanekkora erőfeszítés JS-ből, és akkor JS nélkül meg a szerver sokkal triviálisabban tudja kiköpni a megfelelő lapot.

Ha a tömbnéjl per lap változtatható, akkor lehet, hogy érdemesebb offszetet ráírni, nem pedig lapszámot (tk. 12-es lapozásnál /0, /12, /24, …)

A middleclick megoldása pedig relatíve egyszerű, kb. ugyanaz, mint ahogy JS-telenfriendliesíted™ az egészet: sima link a hrefbe, onClick csinál valamit, middleclickkel meg JS nélkül meg úgyis a jó lapot hozza, csak szerveroldali rutinból.

Szerintem ezt nem lehet így általánosan eldönteni, hogy jobb-e ez a JS-es dolog, amit mondasz, vagy nem (mint a klasszikus keresések mondjuk). mindig adott eseteknél lehet eldönteni tudva, hogy mik a célok és a prioritások. pl. hálózati forgalom, szerver terhelés, kliens gép terhelés, keresés fontossága, stb. amúgy nem rossz az ötlet, ill. a felvetés!

Ralesk a google picasaweben láttál ilyet, ezt a módszert sikerült megvalósítanom nekem is nem túl bonyolult, az alapja az, hogy az url # utáni része a location.hash stringből kiolvasható. ( ld. itt (ez csak egy ideiglenes tesztoldal))
js kikapcsolása esetén az tuti hogy nem műxik minden, ill. nem írtak mindenre alternatívát, legalábbis van benne egy figyelmeztetés noscriptben.

a middleclickes tippet thx, ezt ki akartam próbálni, de nem voltam benne biztos h műxik. szerveroldali cucc nem kell hiszen az url # utáni részét js-sel is lehet értelmeztetni pl az oldal első letöltésekor is...

Kristóf általánosságban persze nem lehet de az tuti hogy a legtöbb webgaléria még képcache-elést sem használ, számomra érthetetlen módon. azoknak a usereknek akik ingyen kapnak pl. valahol webtárhelyet, egész biztosan nem szempont a szerver sávjának esetleges pazarlása nekik az a fontos hogy a látogató kényelmesen nézhesse a lapot, ehhez pedig nem ártana cache-elni a képeket…

„szerveroldali cucc nem kell hiszen az url # utáni részét js-sel is lehet értelmeztetni pl az oldal első letöltésekor is” – igen, de amikor szerveroldalra gondoltam, az a JS-mentes dolgok támogatása volt.

Lehet a kettőt ötvözni, gondolom. A href az /-es, de ha JS-sel tolod, akkor a browser nem fogja letölteni, mert a JS-ed #-os dologgal operál. Bár valószínűleg teljesen felesleges ekkor már #-ozni, maga a töltögetősdi az URL kinézetétől függetlenül lejátszható JS-sel.

Vagy valami ilyesmi.
Hozzászólásod:


Nem vagy bejelentkezve, de...

A)
hozzászólhatsz regisztrálatlanul...

B)
ha regisztrálva vagy, bejelentkezhetsz...