Newsletter

Grupa MagazynyInternetowe

Online: 1001

Wyszukiwarka

JavaScript

Kiedy nie używać JavaScriptu?

Kiedy nie używać JavaScriptu? Opieranie się na JavaScripcie może okazać się błędem. Wbrew pozorom nie wszyscy odwiedzający z niego korzystają. Zadziwiające, jak często twórcy stron zapominają o tym.

Marcin Kosedowski

Wszyscy korzystają z JavaScriptu? Wcale nie. Oprócz niewidomych używających czytników i internautów świadomie blokujących reklamy nie używają go osoby korzystające z niektórych przeglądarek mobilnych oraz takie, którym nie pozwala na to polityka bezpieczeństwa firmy. Łącznie kilka procent osób.

Jeden z czternastu

Używając JS-u do wygenerowania treści strony blokujesz dostęp jednemu z czternastu odwiedzających. Może wydawać się to małą liczbą, ale również boty wyszukiwarek mają problemy z odczytaniem treści wygenerowanych za pomocą skryptów. Google indeksuje takie dane, ale tylko jeśli wygenerowane są w prosty sposób. Egzotyczne skrypty zostaną zignorowane, a strona nie wypozycjonuje się tak jak powinna, przez co odpływ odwiedzających będzie większy niż te 7%.

Procent użytkowników z wyłączonym JavaScriptem w ostatnich latach. Procent użytkowników z wyłączonym JavaScriptem w ostatnich latach.

Jeśli strona zawiera znaki narodowe, co w przypadku polskich witryn zwykle ma miejsce, należy dodać do nich również korzystających z przeglądarki Chrome. Zmiana kodowania za pomocą document.write() (np. przy generowaniu ramek poprzez JS) spowoduje w tej przeglądarce wyświetlenie "krzaków".

Jeśli chcesz wstawić na stronę dynamicznie generowane elementy, np. ze zmienną treścią pamiętaj, aby wykorzystać JavaScript jedynie do ukrycia elementów. Pokazywane powinny być przy pomocy samego HTML-a lub CSS-a. Powód jest prosty: jeśli użytkownik ma wyłączoną obsługę skryptów nie zobaczyłby odsłanianej treści.

Link to link

Jednym z najczęściej popełnianych błędów jest użycie JavaScriptu do nawigacji tam, gdzie nie jest to konieczne. Jeśli to możliwe linki powinny być wykonane za pomocą standardowego <a href="adres">, a nie poprzez <a href="javascript:goTo('adres')">. Nie chodzi tu tylko o dostępność, ale również działanie skryptu po typowym zachowaniu jakim jest kliknięcie środkowym przyciskiem. W drugim przypadku zwykle otworzy się pusta karta, a użytkownik nie odwiedzi docelowej strony.

CODA, jeden z najpopularniejszych skryptów do dynamicznej zmiany zawartości strony, działa poprawnie nawet bez JS-a (http://www.panic.com/coda/). CODA, jeden z najpopularniejszych skryptów do dynamicznej zmiany zawartości strony, działa poprawnie nawet bez JS-a (http://www.panic.com/coda/).

Nadmiernie wykorzystując JavaScript możesz zaszkodzić również sobie. Sprawdzanie poprawności formularzy po stronie użytkownika jest bardzo wygodne dla obu stron, ale nie może być jedynym sposobem weryfikacji wprowadzonych danych. Nieczuciowy internauta w przypadku błędu mógłby ustawić zmienną odpowietrzającą za walidację w swojej przeglądarce i wysłać niepoprawny formularz.

Dinozaurom mówimy nie

JavaScript jest użyteczny i wygodny, ale po warunkiem przemyślanego wykorzystania go. Najważniejsze żeby strona działała poprawnie bez niego, a włączony JS powinien jedynie ułatwiać lub przyspieszać dostęp do danych.

Na koniec jeszcze jedna rada. Nigdy, ale to nigdy, nie używaj JavaScriptu jeśli postanowisz wykorzystać go do wstawienia na stronę dinozaura biegającego za kursorem i innych tego typu "upiększaczy". Ta era minęła 10 lat temu.

22 grudnia 2009

Powiązane publikacje

JavaScriptu w kilku słowach

JavaScriptu w kilku słowach

Framework jQuery - JavaScript nie boli

Framework jQuery - JavaScript nie boli

JavaScript nas kręci

JavaScript nas kręci

 
Skomentuj
ten artykuł

Komentarzy: 4

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum niedziela, 27.12.2009 17:41tezet

Zawsze przy tego typu dyskusjach pozostaje do rozwiązania kwestia: na ile projektant strony ma się dostosowywać do konserwatyzmu niektórych odbiorców, a na ile to potencjalny odbiorca powinien zaakceptować ogólnie przyjęte standardy. Irytuje mnie takie jednostronne podejście do problemu, może wynika to ze zmęczenia pisaniem kodu strony, która ma wyglądać i działać zgodnie z najnowszymi trendami ale z uwierającą świadomością, że gdzieś tam jakiś Jaś Kowalski przywiązał się do swojego IE5 (albo jest zbyt leniwy, by dokonać upgrade'u) i trzeba ten kod naszpikować bezsensownymi hackami - to analogiczny problem. Jakoś nikt dziś nie wymaga od programistów, by pisali aplikacje działające identycznie pod iCore7 i 368SX. Jeżeli ktoś wyłącza JS, to musi mieć świadomość, że ogranicza znacznie funkcjonalność browsera - coś za coś. Jeżeli użytkownik wyłączy wyświetlanie grafiki, to niech nie oczekuje, że mu w altach będę tworzył sienkiewiczowskie opisy tego, co było na zdjęciach. Ta treść stanie się dla niego niedostępna z jego własnego wyboru. Co do 'odkrywania' treści zawartych na obszarach generowanych skryptowo, to w wielu przypadkach oznacza to de facto pisanie alternatywnego layoutu. Ja to oczywiście mogę zrobić, pytanie, czy zleceniodawca zechce za to dodatkowo zapłacić? Dla siedmiu procent potencjalnych odsłon - z pewnością nie. (Tak na marginesie: dziwi mnie ta liczba, bo z własnych statystyk - a trochę ich mam - liczba przeglądarek bez aktywnego JS oscyluje w granicach 0,7 procent, więc rozbieżność jest ogromna.)

Przejdż do tego postu na forum środa, 23.12.2009 10:12.

Nigdy nie korzystalem z CODA ale czy to nie jest tylko pod MAC OS X?
Na ich stronie jest napisane
Req: Mac OS X 10.4+

Przejdż do tego postu na forum środa, 23.12.2009 08:12krytyk

Dziwne ta strona 'coda' pod ie8 bez js nie działa. Usuńcie tą publikacje bo tylko się ośmiesza.

Przejdż do tego postu na forum wtorek, 22.12.2009 21:38ix

Jak zwykle calkiem dobry art ale jak zwykle czegos brakuje. Skad jest wykres osob z wyl js? Na ranking.pl nie moglem znalezc. Uzywanie ajax'a czyli js+dom w linkach jest jak dla mnie poprawne, jezeli tylko sie wie jak go uzyc, na blogu pornel'a szukajcie. Pokazuje jak skonstrulowac linki zeby dzialaly zarowno z js jak i bez. Streszczajac nigdy nierobcie calej strony w js a juz na pewno nie kluczowych funkcji ewentualnie jakies dodatki. Obecnie pisze sklep intesnetowy, sama strona nie ma js a panel jest caly w ajax'ie. Dla tego ze mam tam skrypty ktore sprawialy ze strona wczytywala sie dlugo, po zastosowaniu ajax'a lata jak strzala. Bez wl js prawie nic sie tam nieda zrobic ale stac mnie na to bo panel jest tylko dla paru osob w firmie. Pozdrawiam

Zobacz wszystkie komentarze »

Autor

Marcin Kosedowski

Marcin Kosedowski - programista i mimo wykształcenia typowo technicznego autor artykułów o tematyce dotyczącej Internetu i bezpieczeństwa w sieci. Hobbystycznie prowadzi bloga, na którym porusza sprawy związane z programowaniem i Internetem.

Adres bloga like-a-geek.jogger.pl

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.