Jeden wyłącza JavaScript w środowisku przeglądarki z następujących powodów:
- Szybkość i przepustowość
- Użyteczność i dostępność
- Wsparcie platformy
- Bezpieczeństwo
Szybkość i przepustowość
Wiele aplikacji używa zbyt wiele skryptów JavaScript do własnych celów ... Czy potrzebujesz części interfejsu do odświeżania przez połączenia AJAX przez cały czas? Być może twój interfejs jest świetny i szybki, gdy jest używany z połączeniem szerokopasmowym, ale gdy musisz obniżyć do niższych prędkości połączenia, preferowany jest bardziej usprawniony interfejs. A wyłączenie JavaScriptu to dobry sposób na zapobieganie oszołomionym aplikacjom internetowym odświeżania świata co około 15 sekund bez powodu. (Czy kiedykolwiek spojrzałeś na ilość danych, które Facebook przesyła? To przerażające. Nie jest to jednak tylko kwestia związana z JS, ale jest jej częścią).
Mamy również tendencję do przenoszenia coraz większej ilości przetwarzania do klienta, a jeśli używasz minimalistycznego (lub po prostu przestarzałego) sprzętu, jest to boleśnie powolne.
Użyteczność i dostępność
Nie wszystkie interfejsy użytkownika powinny być wyrażane dynamicznie, a treści generowane przez serwer mogą być w wielu przypadkach całkowicie akceptowalne. Ponadto niektóre osoby po prostu nie chcą tego typu interfejsów. Nie możesz zadowolić wszystkich, ale czasami masz szansę i obowiązek zadowolenia wszystkich użytkowników.
Wreszcie, niektórzy użytkownicy są niepełnosprawni i nigdy ich nie ignorujesz !!!
Moim zdaniem najgorszym scenariuszem są tutaj rządowe strony internetowe, które próbują „zmodernizować” swoje interfejsy użytkownika, aby wydawały się bardziej przyjazne dla społeczeństwa, ale ostatecznie pozostawiają za sobą dużą część docelowej grupy odbiorców. Podobnie szkoda, gdy student uniwersytetu nie może uzyskać dostępu do treści swojego kursu: ponieważ jest niewidomy, a jego czytnik ekranu nie obsługuje strony, lub ponieważ strona jest tak ciężka i wymaga nowoczesnych wtyczek ad hoc, które nie może zainstalować na odnowionym laptopie kupionym na e-bay 2 lata temu lub ponownie, ponieważ wraca do domu do innego kraju na przerwę wiosenną, a lokalne ograniczenia przepustowości nie są w stanie poradzić sobie z ładunkiem teren.
Nie wszyscy żyją w idealnym świecie.
Wsparcie platformy
Ten punkt odnosi się do dwóch poprzednich i obecnie jest mniej istotny, ponieważ przeglądarki osadzają silniki JavaScript, które są o poziom wielkości bardziej wydajne niż kiedyś, a to staje się coraz lepsze.
Nie ma jednak gwarancji, że wszyscy Twoi użytkownicy mają przywilej korzystania z nowoczesnych przeglądarek (albo z powodu ograniczeń korporacyjnych - które zmuszają nas do wspierania przeglądarek przedpotopowych bez uzasadnionego powodu, naprawdę - lub z innych powodów, które mogą być lub nie być ważne). Jak wspomniał „Matthieu M.” w komentarzach należy pamiętać, że wiele osób nadal używa sprzętu niższej jakości i że nie wszyscy używają najnowszego i najfajniejszego smartfona. Na dzień dzisiejszy znaczna część osób korzysta z telefonów z wbudowanymi przeglądarkami z ograniczoną obsługą.
Ale, jak wspomniałem, w tej dziedzinie jest coraz lepiej. Ale nadal musisz pamiętać o poprzednich punktach dotyczących ograniczeń przepustowości, jeśli bardzo regularnie odpytujesz (lub użytkownicy będą cieszyć się ładnym rachunkiem telefonicznym).
Wszystko jest bardzo powiązane.
Bezpieczeństwo
Chociaż oczywiście można pomyśleć, że przy pomocy JavaScript nie można zrobić nic szczególnie niebezpiecznego, biorąc pod uwagę, że działa on w środowisku przeglądarki, jest to całkowicie nieprawda.
Zdajesz sobie sprawę, że kiedy odwiedzasz P.SE i SO, jesteś automatycznie logowany, jeśli zalogowałeś się w innej sieci, prawda? Jest tam trochę JS. Ten kawałek jest jednak nadal nieszkodliwy, ale wykorzystuje pewne koncepcje, które mogą zostać wykorzystane przez niektóre wrogie strony. Witryna może całkowicie wykorzystywać JavaScript do zbierania informacji o niektórych czynnościach (lub czynnościach) podczas sesji przeglądania (lub poprzednich, jeśli nie wyczyścisz danych sesji za każdym razem, gdy zamkniesz przeglądarkę lub uruchomisz teraz często używane tryby przeglądania incognito / private), a następnie wystarczy przesłać je na serwer.
Ostatnie luki w zabezpieczeniach (działające wówczas w głównych przeglądarkach) obejmowały możliwość gromadzenia zapisanych danych formularzy wejściowych (wypróbowanie kombinacji dla Ciebie na złej stronie i zapisanie sugerowanych tekstów dla każdej możliwej kombinacji liter początkowych, prawdopodobnie informując atakującego, kim jesteś , gdzie pracujesz i mieszkasz ) lub wyodrębnić historię przeglądania i zwyczaje ( bardzo sprytny hack robi coś tak prostego, jak wstrzykiwanie linków do DOM strony, aby dopasować kolor linku i sprawdzić, czy została odwiedzona . na wystarczająco dużej tabeli znanych nazw domen. A Twoja przeglądarka przyspiesza przetwarzanie JavaScript, tego typu czynności są wykonywane szybko).
Ponadto nie zapominajmy, że jeśli model bezpieczeństwa przeglądarki jest wadliwy lub odwiedzane witryny nie chronią się wystarczająco, aby uniknąć ataków XSS, wówczas można użyć JavaScript, aby po prostu skorzystać z otwartych sesji na zdalnych stronach internetowych.
JavaScript jest w większości nieszkodliwy ... jeśli używasz go w zaufanych witrynach. Gmail Facebook (może ... a nawet nie ...). Google Reader. StackExchange.
Ale tak, JavaScript nie może być taki zły, prawda? I tak są straszniejsze rzeczy, których można się obawiać w Internecie. Jak na przykład myślenie, że jesteś anonimowy, kiedy tak naprawdę nie jesteś aż taki , jak pokazano w eksperymencie EFF z Panopticlick . Które jest częściowo wykonane przy użyciu JavaScript. Możesz nawet przeczytać ich powody, aby wyłączyć JavaScript, aby uniknąć pobierania odcisków palców w przeglądarce .
Biorąc to wszystko pod uwagę, mogą istnieć idealnie dobre sytuacje, w których nie musisz się martwić o obsługę JavaScript. Ale jeśli oferujesz witrynę z usługami publicznymi, rozważ zaakceptowanie obu rodzajów klientów. Osobiście uważam, że wiele współczesnych aplikacji i stron internetowych działałoby równie dobrze, używając wcześniej wygenerowanego przez serwer modelu treści bez JavaScript w ogóle po stronie klienta, i nadal byłoby świetne i prawdopodobnie o wiele mniej pracochłonne.
Twój przebieg może się różnić w zależności od projektu.