Gruodis 7, 2007Kaip dirbti su JavaScipt teisingai?
JavaScript yra gėris. Tai programavimo kalba, kuri ypač dažnai naudojama interneto svetainėse norint sukurti gražų efektą ar AJAX pagalba supaprastinti puslapio navigaciją. Puikiausias to pavyzdys - Google produktas Mail. Visas šios programos grožis atsiskleidžia tada jei naršyklėje yra įjungtas JavaScript palaikymas - su efektais keičiasi informacija, puslapis vis iš naujo nepersikrauna ir t.t. O kas bus jei išjungsime JavaScript palaikymą?
Turbūt nereikia įrodinėti, kad interneto puslapiai turi būti pasiekiami su visomis naršyklėmis, operacinėmis sistemomis ir t.t. Google norėdama sulaukti didžiulio populiarumo negalėjo parašyti - „Geriausiai matoma su Internet Explorer 6“ , ji turėjo padaryti taip, kad jų svetainės būtų atvaizduojamos vienodai, o svarbiausia - funkcionuotų bet kokiu atveju. Todėl Google Mail nebaisūs JavaScript išjungimai - sistema tai pastebi ir iš kart perkelia į statinį puslapio variantą. Google Mail tiek su JavaScript palaikymu, tiek be jo veikia be priekaištų. Gaila, bet Google pavyzdžiu paseka ne visi - naršyklėje išjungus JavaScript dingsta svetainės funkcionalumas ir tinkamai naudotis svetaine galima tik vėl įjungus JavaScript. O jei JavaScript palaikymas išjungtas „amžinai“ ir vartotojas net nesiruošia jo įjungti - pasiūlysite vartotojui nesilankyti svetainėje?
Taip, tikriausiai niekas tyčia neišjunginės JavaScript palaikymo (kai kas tai daro norėdamas apsisaugoti nuo naršyklių pažeidžiamumų), tačiau net jei atsiras nors viena klaida JavaScript kode jį bevykdant, jo vykdymas bus nutrauktas ir jis tiesiog nebeveiks. Neretai taip atsitinka su senesnėmis naršyklėmis - atrodytų JavaScript kodas yra teisingas, tačiau naudojamos pernelyg naujos funkcijos, kurios senoje naršyklėje nėra palaikomas. Toks kodas praneša apie klaidą ir jo vykdymas nutraukiamas - svetainė lieka statiška. Atrodytų maža problema - juk nuorodos ir toliau veikia, bet jei mes norime susikrauti prekių krepšelį, o vienintelis to padarymo būdas - nuorodos su JavaScript funkcijomis? Tokių svetainių yra daugybė, o ypač Lietuvoje - atrodytų, kad programuotojai darė svetainę šiek tiek atmestinai, nes jei visa svetainė nėra paremta JavaScript (kaip Google Reader, kuris be JavaScript iš vis neveikia), o tik vienintelė funkcija naudoja JavaScript, tai ar negalima padaryti, kad svetainė funkcionuotų ir be JavaScript?
Šiame straipsnyje ir vėl noriu užsiminti apie naujai daromą savo projektą - jis tikrai veiks tiek su JavaScript, tiek be. Žinoma - JavaScript jam suteiks dinamiškumo, vartotojui bus paprasčiau susidėti krepšelį, užpildyti užsakymo formą. Bet jei išsijungsite JavaScript palaikymą visas funkcionalumas išliks - sistema padaryta su tokiu požiūriu, kad pirmiausia reikia sukurti svetainę, kuri be priekaištų veikia, o tik tada naudoti JavaScript. Atrodytų gana elementarus patarimas, tačiau nežinau kodėl tiek projektų padaryti neatsižvelgiant į galimybę, kad ne visų vartotojų naršyklės yra identiškos programuotojų. Žinoma, galima JavaScript sukurti ir kartu su visu puslapiu, bet tada pasirūpinkit, kad puslapis veiktų visada, gerai?
Tikrai primygtinai nesiūlau laikytis aukščiau esančio patarimo, bet manau, kad bet kokiu atveju svetainė turi veikti tiek su JavaScript, tiek be. Nors šansas, kad žmogus bus išsijungęs JavaScript palaikymą yra mažas, tačiau jis yra ir norint, kad svetainė būtų tikrai gera, manau, kad būtina pasirūpinti veikimu visose naršyklėse ir ne tiek versijų, bet ir nustatymų požiūriu. Ar vis dar rašysime, kad „svetainė geriausia veikia Windows aplinkoje su Internet Explorer 6 naršykle, 1024×768 rezoliucija“?
Patiko ką perskaitei? Užsiprenumeruok RSS srautą ir visada gauk mano naujausius įrašus pats pirmas! Tai ne tik, kad yra be galo patogu, tačiau ir leis tau nepraleisti nei vieno mano įrašo. Jei kiltų problemų - rašyk.
Šį įrašą citavo
- Blogorama #273 : nežinau.lt
- Juozo Kaziukėno blogas » Ir svetainės kartais dūžta
- ManoKnyga.lt - geriausias mano darbas so far - Juozo Kaziukėno blogas


2007-12-07 16:58:30
Kaip pirštu į akį :)
2007-12-07 18:26:52
pritariu!
Beje kuriant svetainę reikia atsižvelgti ir į css, skirtingas naršykles (kad ir tokia egzotika kaip lynx) bei skirtingas OS.
Beje javascript nereiktų prikišti labai daug. Pvz turiu namie sena pc, kuris google calendar visai neatidaro, priežastis per daug resursų ryjanti aplikacija. O galimybių noris visiems :)
2007-12-07 18:45:32
Tai css ir pan. dalykai jau gana elementarus dalykas ir jau daug maž visos net kiek didesnės svetainės susitvarko savo išvaizdą.
O JavaScript reikia bet kokiu atevju naudot protingai.
2007-12-07 20:24:22
Na taip, CSS tai akivaizdus dalykas, bet su IE, kad ją kur, kartais tikrai sudėtinga susitvarkyti, kad ji normaliai rodytų taip kaip tu nori, o ne kaip jai susišviečia :)
Beje, pažiūrėkit į http://www.tf.vu.lt, pavyzdžiui, ir pamatysit kas būna, kai nepatikrini savo tinklalapio bent jau populiariausiose naršyklėse… :)
2007-12-07 20:26:16
Velnias, pamiršau parašyti, kad su Opera pažiūrėkit į http://www.tf.vu.lt :)
2007-12-07 20:34:22
Su Firefox lyg ir gerai rodo - tik meniu su mėlynu šriftu. Vėliau pasižiūrėsiu ir su Opera.
O su IE, tai jau taip - kartais problema didžiulė, o jei dar atsiranda teksto dingimo bugai, tai iš vis… Nuo ko galima pradėt ieškoti, kai tekstas yra bet jo nerodo, o perbraukus pele per ekraną, atsiranda? :)
2007-12-07 22:29:56
tf.vu.lt su Opera - nū jo :-)
O šiaip (1) teko dirbti tokioj kompanijoj, kur vyr. programuotojas, kai pareiškiau, kad tiek daug kišti belenkaip javascripto nederėtų, nes apie 10% naršytojų turi jo neįjungę, atsakė - nu ir kas? Kam rūpi tie browsinantys per lynx arba išvis nieko nemokantys? Ką ir bekomentuot…
O šiaip (2) - su js persistengt nereikia.
2007-12-09 14:26:48
Aš tai vadinu perfektcionizmu. Nors tikrai gerbiu žmones kurie tikrai labai puikiai ir kruopščiai atlieka savo darbą, tačiau dažnai įvertinus laiko sąnaudų ir pasiekto rezultato santykį, visa tai ne itin apsimoka. Reikia iš esmės atsižvelgti kiek ir kokiems projektams kiek to suderinamumo reikia. Negerai kai darbas atliekamas atmestinai, bet taip pat neverta ir persistengti. Konkrečiai dėl JavaScript palaikymo, daugumai eilinių eiliniausių projektų pilnai pakanka pasistengti tiek, jog būtų bent parodomas pranešimas apie tai jog reikalinga įjungti JavaScript. Tas pats manau galioja ir su Cookies palaikymu.
2007-12-09 14:34:29
žinoma, pranešimas turi būti rodomas tik tada jei Javascript neįjungtas, nes bent jau man dažnai atrodo kvailai, kai puslapis informuoja apie tai, jog jis geriausiai matomas su tokiais ir tokiais nustatymais, nepaisant fakto, jog pas mane būtent tokie nustatymai ir yra.
2008-05-23 17:25:16
Issijungei java script pats kaltas , o jeigu varotojas issijungs css ???