Mėnesio archyvas: sausio 2007

Mūsų rėmėjai turi visko!

„Google“ rėmėjaiReikia man šį bei tą suprogramuoti savo mokslams, kas dirba su bitukais (konkrečiau — skaito ir rašo bitukus). Vakar ieškojau, gal C turi kažkokias funkcijas tam reikalui. Aišku, pasinaudojau „Google“. Dabar mąstau, ar tik nepradeda jie nusivažiuoti… Pažiūrėkite, kokie pas juos „rėmėjai“. Pirmos mano mintys, tokius pamačius: spamerių irštva… Ačiū dievui, kad kol kas dar nekiša tokių savo „rėmėjų“ po kas penkto paieškos rezultato.

<body onload="funkcija()"> minusas

Šiandien susidūriau su vienu <body onload="funkcija()"> trūkumu, nusprendžiau apie jį papasakoti.

Tarkime, turime tinklalapį, kuris užsikrovęs turėtų įvykdyti tam tikrą Javascript kodą, kažką pakeičiantį/pridedantį tam tikroje tinklalapio vietoje. Jei tai bus bandoma daryti anksčiau, negu minėtoji vieta užsikraus, operacija nenusiseks, todėl tipiniu atveju mes pirma užkrauname tinklalapio body, o tada jau su juo žaidžiame. Visa tai realizuojama, pridedant onload="funkcija()" atributą body žymai.

Bet štai ir susiduriame su netikėtumais. Tarkime, svetainė užkrauna skaitliuką iš vieno ar kelių kitų serverių. Tam, kad lankytojui pirmiau parodyti svetainės turinį, o tik tada rūpintis statistikų generavimu, mes tuos JS failus iškviečiame body pabaigoje, o ne head dalyje. Taigi, viskas veikia puikiai, kol vienas iš tų kitų serverių nenumiršta. :) O kai taip įvyksta, body nėra laikomas loaded, kol neišsibaigia laikas, skirtas bandymui parsisiųsti to skaitliuko JS’ą. Taigi, gaunasi truputėlį nekas — mūsų funkcija inicijuojasi, vėluodama gerą minutę, o gal net daugiau… Beje, šiuo atveju JS įtraukimas į head dalį, spėju, tik dar apsunkintų situaciją — tą minutę vėluotų ne tik mūsų funkcija, bet ir visas svetainės turinys.

Todėl nuo šiol manau, jog labai dažnai vietoje onload geriau naudoti paprastą script, iškviečiamą prieš pat iškviečiant skaitliukus, o gal net ir dar anksčiau. Bent jau tais atvejais, kai kažkokį turinį krauname iš išorinių serverių…