Testimise ja käeharjutamise mõttes sai Blogeye blogide lugemise süsteemile lisatud väike uuendus mis võiks olla esimeseks sammuks järgmistele arengutele – nimelt muudetakse esilehel nüüd jQuery abil uute postituste linke. Kui enne nägi kasutaja hiirega postituse lingile liikudes staatuse ribal “…/jump.php?entry=…” siis nüüd, kui browseris on javascript lubatud näevad nad postituse enda linki. Statistika kogutakse taustal eraldi javascriptiga nii, et kaotsi ei tohiks miskit minna.
Momendil testitud ja töötab: Firefox, Konqueror 4.2 (3.5 ei tööta) ja IE7
Kui test õnnestub, siis järgmisena tahaks blogi lisamise lemmikute hulka ja bookmarkimise viia javascripti peale, et saaks säästa lehe laadimisele kuluva aja.
märts 13, 2009 kell 3:23 p.l. |
Huvitav teema! Blog.tr.ee-s lahendasime kunagi asja sarnaselt, ainult paari erinevusega:
_click event_ asemel jälgime _mousedown event_’i – sellisel juhul peaks olema suhteliselt garanteeritud, et päring jõuab enne kohale kui brauser jõuab päringu “ära lõigata”
ajax-i päringu asemel laeme Image() objekti (new Image().src=’/tracker?url=…’) – sellisel juhul ei sõltu välisest teegist, kuna Image() on JS standard objekt, aga Ajax päring ei ole seda mitte.
märts 13, 2009 kell 3:32 p.l. |
Eks nüüd peab testima jah, et kas selle asendusega ja Ajax’i post’iga seoses läheb klikke kaduma või mitte. Iseenesest jQuery veel nii uus teema, et pole jõudnud nende enda dokumentatsioonigi väga läbi uurida, kas seal ka mõni muu ja “parem” lahendus sellisele lähenemisele on.
märts 13, 2009 kell 8:56 p.l. |
Image() laadimine träkkimiseks on ka ses mõttes etem Ajaxi päringust, et tegu on JS jaoks suht ühesuunalise protsessiga – saadame info ära ja kõik. Ajaxi puhul tuleb veel tegeleda serverist vastatuga ehk et saadame info ära ja siis ootame kuni vastus tuleb ja siis teeme selle vastusega midagi. Kui tegelikult vastust vaja pole, siis pole sellist tüüpi päring võibolla kõige mõttekam.
Kuigi jah, ka praeguse ajaxiga versiooniga peaks kõik töötama.
märts 15, 2009 kell 10:05 p.l. |
Uurisin tiba siit ja sealt ja tundub, et Image() kasutamine võib tõesti nii töökindlam kui kiirem olla. Ajaxi post-päringu puhul siiski leidus klikke mille puhul päring serverisse ei jõudnud.
märts 17, 2009 kell 12:46 p.l. |
click eventid lähevad vähemalt Firefoxi puhul tõesti aegajalt kaduma, asendatud nüüd mousedown eventiga (mis muidugi võimaldab tekitada “libaklikke” juhul kui kasutaja vajutab lingil hiire nupu alla, ent lohistab selle sealt siis ära või vajutab escape)