No i dotarliśmy do srebrnego medalisty, który dzielnie walczył o złoto, jednak ostatecznie postanowiłem mu przyznać “dopiero” drugie miejsce. ECMAScript/JavaScript/JScript. Czym jest? Czemu sprawia takie problemy? Jak go używać poprawnie? Tego wszystkiego dowiecie się już za chwilę, w 12. odcinku “Mody na standardy”!
ECMAScript, JavaScript, JScript, … A co za różnica?
Historia tych trzech pojęć sięga tzw. pierwszej wojny przeglądarek, czyli drugiej połowy ubiegłego dziesięciolecia, kiedy to o prymat na rynku walczyły Netscape i Microsoft. Był to czas, w którym obie firmy dodawały do swoich przeglądarek mnóstwo niestandardowych rozwiązań i unowocześnień tak, aby prześcignąć konkurencję. Pierwszy krok wykonał Netscape, dodając pod koniec 1995 roku do Navigatora obsługę własnego języka skryptowego – JavaScript. Microsoft oczywiście nie pozostał bierny i w 1996 wprowadził własny język (nie do końca kompatybilny) o nazwie JScript do Internet Explorera.
ECMAScript jest ustandaryzowaną wersją JavaScriptu, do której dostosował się również JScript. Powstał na przestrzeni 1997 i 1998 roku. Od tej pory można powiedzieć, że JavaScript i JScript są implementacjami języka o nazwie ECMAScript, a nie odrębnymi językami. JavaScript jest obecnie używany w spadkobiercach Netscape’a, czyli przeglądarkach opartych na silniku Gecko (Firefox, SeaMonkey, Flock, …), a JScript – dalej w IE.
W poniższym artykule będę się posługiwał nazwą “JavaScript”, jako że jest najczęściej używana i najlepiej rozpoznawalna. Mimo to należy pamiętać, że w zasadzie chodzi o ECMAScript, a największe problemy stwarza JScript
Dlaczego JavaScript robi problemy?
I dlaczego na przykład takich problemów nie stwarza HTML czy CSS? Otóż jest tego kilka powodów:
- HTMLa wszyscy potrafią mniej-więcej używać (składniowo, bo semantycznie to bywa różnie). CSS nie toleruje błędów – niepoprawnie napisane reguły mają być, według specyfikacji, pomijane przez przeglądarkę. A JS – no cóż… Najczęściej nawet nie widać, że został popełniony błąd, dopóki coś się nie wykrochmali. JS jest językiem skryptowym. Pomijając tego liczne zalety, ma to jedną wadę – kod nie przechodzi żadnej weryfikacji poprawności, gdyż nie jest kompilowany.
- Wiele osób ciągle tworzy skrypty zgodne z wersjami sprzed kilku lat. Wtedy JScript i JavaScript nie były ze sobą kompatybilne – pierwszy z nich wykorzystywał
document.all, drugi –document.layer. Istotnym jest, że żadna z tych metod nie jest obecnie poprawna – należy stosować model DOM, czyli na przykładdocument.getElementById. - Tak na prawdę mało osób potrafi się posługiwać JSem. Większość skryptów, zwłaszcza jeśli chodzi o amatorskie strony, nie jest pisanych samodzielnie, tylko kopiowanych z innej strony, która to skopiowała z jeszcze innej strony, która to … I tak dalej. Z każdym takim krokiem autor wprowadza zazwyczaj jakieś swoje modyfikacje (metodą prób i błędów) i już po kilku przejściach skrypt staje się śmietnikiem.
- Jeszcze mniej osób wie, do czego służy JS. Zapominają o tym, że w zasadzie z założenia jest to niejako dodatek na stronę. Chodzi o to, że cała jej zawartość powinna być dostępna bez włączonej obsługi JS. Przy, na przykład, błędnie napisanym menu nawigacyjnym jest to niemożliwe.
Jak to można naprawić?
Po pierwsze: Ogranicz używanie bajerów na stronie. Tym nie zaszpanujesz kolegom z klasy. Animowany kursor myszki jest najczęściej obleśny i denerwujący, nie mówiąc już o zamulaniu procesora. Animowany tekst w dolnym pasku stanu jest brzydki i uniemożliwia odczytanie ważnych informacji, jakie zamieszcza tam przeglądarka.
Drugą sprawą jest chyba najczęstsze obecnie wykorzystanie skryptów – do animowanego, wysuwanego menu nawigacyjnego. Dam ci kilka porad dotyczących tworzenia skryptu:
- Konstruuj menu tak, aby się można było dostać do wszystkich podstron bez JavaScripta. Jak to zrobić? Bardzo prosto. Niech pozycja najwyższego rzędu (po najechaniu której wysuwają się odnośniki do konkretnych stron) również będzie odnośnikiem – do strony zawierającej odnośniki niższych rzędów.
- Zamieszczaj porządne skrypty. Nie kopiuj ich z kodów źródłowych stron, bo mogą być napisane beznadziejnie. Lepszym rozwiązaniem jest wzorowanie ich na przykładach i sposobach ze stron zajmujących się tematyką webmasterki (najlepiej, gdyby poświęcały one dużą uwagę standardom). Takie skrypty są najczęściej wyższej jakości, bo są pisane przez osoby, które same umieją programować w JavaScripcie. Masz gwarancję, że ściągane rozwiązanie nie jest dziesiątą przeróbką kiepskiego skryptu (vide punkt trzeci powyższej listy “Dlaczego JS robi problemy?”).
- Idealnie by było gdybyś sam nauczył się pisać porządne skrypty, korzystające z modelu DOM.
Na koniec mała uwaga: JavaScript jest po to, żeby pomagać użytkownikowi w korzystaniu ze strony, a nie przeszkadzać. Powodzenia!

Uwaga! Obsługa Java Skryptów w Twojej przeglądarce została wyłączona. Niektóre opcje Fotka.pl nie będą działać. Zobacz pomoc … jak to naprawic?co trzeba kliknać zeby to naprawić?? nie moge wejsc na fotka.pl prosze o pomoc!pozdro
Nie wiem z jakiej korzystasz przeglądarki, ale zapewne zmienia się to w ustawieniach. w Firefoksie jest to Narzędzia -> Preferencje -> Treść -> Włącz obsługę JavaScript. W IE bodajże Opcje -> Opcje Internetowe, a dalej już musisz szukać bo nie pamiętam.
Dziwna argumentacja – “Wiele osób ciągle tworzy skrypty zgodne z wersjami sprzed kilku lat(…)”, “Tak na prawdę mało osób potrafi się posługiwać JSem”, “Jeszcze mniej osób wie, do czego służy JS”. Autor tutaj sam przyznaje ze to problem z ludzmi (webmasterami) a nie JavaScriptem. Nie mozna twierdzic ze samochody sa zle, bo czasem spotyka sie zlych kierowców. Javascript to doskonaly sposób na wzbogacenie swojej aplikacji webowej – tylko trzeba go znac i rozumiec.
“Drugą sprawą jest chyba najczęstsze obecnie wykorzystanie skryptów – do animowanego, wysuwanego menu nawigacyjnego.” – to akurat najlepiej w css zrobic i juz.
Niestety jesli chodzi rozne wynalazki typu netvibes czy yourminis to JS jest calkowicie absolutnie niezbedny, bo bez niego cala funkcjonalnosc witryny znika.. A obawiam sie ze RIA to nie jest przelotny trend, moze niekoniecznie JS, moze Java FX, flex czy inne profanacje, ale beda to rzeczy ktore zadomowia sie wkrotce na dobre. Chocby takie widgetbox… kazdy chce miec widgeta
“Dobrze napisany” JS jest dobry.. Autor chyba sam to powiedział?
Oczywiście, że tak. JavaScript się często przydaje i sam z niego korzystam jak muszę/potrzebuję. Niestety, z doświadczenia wiem, że nieumiejętnie pisane strony w JS przynoszą więcej szkód niż pożytku i o tym był ten artykuł.
Nie moge wejsc na fotke.pl a gdy próbowałam wejsc przez google to pokazało sie – Uwaga! Obsługa Java Skryptów w Twojej przeglądarce została wyłączona. Niektóre opcje Fotka.pl nie będą działać. Zobacz pomoc … Nie wiem co mam zrobic BARDZO PROSZE o pomoc :*
A zobaczyłaś pomoc? Jeśli pomoc ci nie pomogła, spróbuj tego, co napisałem w komentarzu dla Asi (komentarz numer 2).
w Wirefoksie ‘NoScript’ – używam tego z powodzeniem od dawna. Dla stron, które wymagają js do działania (np. do sprawdzania formularzy) włącza się ‘białą listę’ – czyli nie blokowanie skryptów dla danej strony i … już. Polecam.
lol… zainstaluj firefoxa
a najlepiej to usun konto z fotki…
[...] historii, nieco inaczej. O cafe [...]