Jestem programistą stron internetowych od prawie 10 lat i mam w zwyczaju nie używać JavaScript, gdy tylko jest to możliwe. Nie mówię tu o tworzeniu aplikacji internetowych, ale o witrynach baz danych.
Czy to dobre / szanowane podejście?
Jestem programistą stron internetowych od prawie 10 lat i mam w zwyczaju nie używać JavaScript, gdy tylko jest to możliwe. Nie mówię tu o tworzeniu aplikacji internetowych, ale o witrynach baz danych.
Czy to dobre / szanowane podejście?
Odpowiedzi:
Instynkt większości programistów ma na celu redukcję wszelkiego rodzaju kodu. Im mniej kodu, tym mniej złożoności i mniej punktów możliwego błędu we wspomnianym kodzie. Ta reguła dotyczy tak samo Javascript, jak i innych języków. Po prostu podtrzymujesz tradycję.
Używaj Javascript zgodnie z potrzebami / potrzebami na stronach HTML ... ale nie ma powodu, aby używać go, gdy nie jest on faktycznie potrzebny.
10 lat temu może to być dobry pomysł. W dzisiejszych czasach większość części Internetu (- przynajmniej niektóre bardzo popularne -) stały się prawie bezużyteczne lub zapewniają tylko bardzo ograniczoną funkcjonalność, gdy wyłącza Javascript w przeglądarce. Dlatego dzisiaj IMHO może oczekiwać, że użytkownicy będą mieć włączoną obsługę Javascript.
Istnieje wiele frameworków, takich jak JQuery, do obejścia niezgodności przeglądarki. IMHO nie ma dzisiaj prawdziwego powodu, dla którego powinieneś się ograniczać, nie używając Javascript w swojej witrynie - jedynym powodem może być to, że nie masz do tego żadnego zastosowania.
EDYCJA: inne pytanie brzmi: jeśli powinieneś zapewnić minimalną funkcjonalność swojej strony internetowej, gdy odwiedzający nie mają włączonej JS - jest to w większości dobry pomysł, z powodów, które wskazali niektórzy komentatorzy.
EDIT2: na pewno dla każdej strony internetowej trzeba znaleźć równowagę między przyjaznością dla użytkownika, przyjaznością dla wyszukiwarek i wysiłkiem rozwojowym. IMHO dzisiaj Javascript może pomóc poprawić tę równowagę - jeśli jest mądrze stosowany. To powiedziawszy, myślę, że nie ma już potrzeby generalnego minimalizowania użycia Javascript w celu utrzymania tej równowagi. Używaj go ostrożnie i nie demonizuj go.
Posiadanie witryny, z której można korzystać bez JavaScript, oznacza, że jest ona dostępna dla jak najszerszego grona odbiorców. Chociaż prawdą jest, że większość przeglądarek obsługuje JavaScript, a większość użytkowników domyślnie go włącza, nie można na to liczyć. W końcu nie wszystko, co ma dostęp do Twojej witryny, to przeglądarka; jeśli chcesz, aby Twoja strona była właściwie indeksowana przez wyszukiwarki takie jak Google, GoogleBot musi mieć możliwość nawigacji w Twojej witrynie bez JavaScript.
Istnieją również specjalistyczne programy do przeglądania stron internetowych, w których JavaScript jest niedostępny lub nie działa zgodnie z oczekiwaniami. Na przykład oprogramowanie do odczytu ekranu lub brajla używane przez osoby niedowidzące. Istnieją również środowiska, w których pamięć jest ograniczona, a posiadanie dużej ilości javascript może sprawiać, że przeglądanie jest nieprzyjemne, a nawet niepraktyczne, takie jak przeglądarki smartfonów.
Powinieneś przyjrzeć się koncepcji „stopniowego ulepszania”, w której budujesz witrynę do pracy bez javascript, a następnie dodajesz warstwę javascript na wierzchu, aby poprawić wrażenia użytkownika. W ten sposób będziesz mieć witrynę, która będzie przynajmniej użyteczna dla osób bez javascript.
Nie musisz dążyć do zapewnienia każdej możliwej funkcji, którą planujesz wdrożyć za pomocą JavaScript w przeglądarkach innych niż JavaScript, ale nadal ważne jest, aby przynajmniej pozostawić podstawowe przypadki użycia dostępne bez JavaScript. Możliwość przeglądania witryny jest oczywiście na szczycie listy, ale jeśli budujesz witrynę e-commerce, uzależnienie procesu kasowania od kodu JavaScript byłoby niemądre, ponieważ mogłoby to kosztować sprzedaż.
Inne odpowiedzi wydają się koncentrować na „czy ja nigdy nie powinienem używać JavaScript”, więc myślę, że nie rozumiem tego. Nie powinieneś używać JavaScript, jeśli go nie potrzebujesz. Niektóre osoby używają JavaScript do wszystkiego :
href
gdy jest to uzasadnione)Korzyści to:
href
linków zapasowych pomaga wyszukiwarkom, użytkownikom, którzy chcą otwierać linki na innych kartach, oraz użytkownikom, którzy nienawidzą JavaScriptOczywiście AJAX jest całkiem fajny, podobnie jak strony dynamiczne, więc nie wyrzucaj tych rzeczy tylko dlatego, że niektórzy ludzie ich nie potrzebują.
Chodzi mi o to, że nauka robienia rzeczy bez JavaScript jest dobra, minimalizacja JavaScript jest dobra, a tworzenie kopii zapasowych na wypadek, gdy JavaScript nie działa, jest dobre, ale nie ma powodu, aby unikać funkcji, ponieważ wymagają one JavaScript.
Dobrym pomysłem jest unikanie niepotrzebnej funkcjonalności, kropka. Frameworki takie jak jQuery sprawiają, że dodawanie dodatków, które mogą mieć sens, ale czasem nie, jest niezwykle łatwe. Na przykład:
Czy naprawdę musisz to animować?
... lub ...
Czy przemierzanie całego DOM jest naprawdę potrzebne dla tak trywialnego selektora? Czy możesz to ograniczyć za pomocą kontekstu i czy potrzebujemy tego w pierwszej kolejności?
Nie unikałbym korzystania z JS, ale uważam, aby nie być wstrętnym, jednocześnie wypatrując wolniejszych maszyn. To samo dotyczy niektórych fantastycznych nowych rzeczy, które otrzymujemy w CSS3 - takich jak cienie ... jeśli użyjesz ich nadmiernie, mogą sprawić, że ktoś na maszynie o niższej mocy będzie miał naprawdę złe doświadczenia.
Wyjątkiem może być pisanie kontrolek front-end dla różnego rodzaju urządzeń, w których muszą one absolutnie współpracować z wyłączonym JS (być może surowa polityka bezpieczeństwa w sieci zarządzania centrum danych nie nakazuje JS). Dlatego powyższe należy wziąć pod uwagę w kontekście dowolnych wymagań.
Uważam, że będąc stosunkowo nowym i młodym programistą (około 4 lat), musiałem dużo na ten temat badać, ponieważ javascript jest wszędzie.
W moich projektach staram się upewnić, że strona działa bez javascript, a następnie dodaj javascript tam, gdzie ma to sens (sprawdzanie poprawności po stronie klienta, ulepszenie interfejsu użytkownika itp.). Jest to rodzaj progresywnego ulepszania i zajmuje się SEO, wyłączonym javascript i starszymi niezgodnościami przeglądarki.
To samo pytanie zostało zadane na SO, ale nie mogę z miłości dla mnie pamiętać, gdzie.
Użycie JavaScript może być ograniczone w kilku przypadkach:
JS ma ogromną liczbę funkcji, których nie można zastąpić kodem po stronie serwera. Poza powyższymi nie sądzę, aby istniał jakikolwiek rozsądny argument ograniczający użycie JS.
„ Witryny oparte na bazie danych ” to klucz do odpowiedzi. Istnieją dwa sposoby tworzenia stron internetowych, a dozwolona ilość Javascript zależy od tego, którego używasz. Możesz zbudować:
Strony zorientowane na treść . W pierwszym przypadku magiczne słowa to „progresywne ulepszenie”; ogranicz javascript do redundantnych funkcji, które mogą być wyposażone w klasyczny dostęp do treści przez zwykły HTTP.
Aplikacje internetowe . W przypadku aplikacji zamiast tego używasz Internetu jako platformy oprogramowania. Aplikacje opierają się na pewnych założeniach dotyczących dostępnego oprogramowania - nowoczesne przeglądarki, najnowsze wersje popularnych bibliotek javascript, dostęp do pulpitu za pomocą myszy i / lub tabletów z funkcją Multi-Touch.
Minimalne wymagania dotyczące dostępu są OK, jeśli naprawdę budujesz aplikację - kierujesz reklamy na określoną platformę, aby uzyskać zaawansowane funkcje, których nie można zbudować inaczej. To tak jak programowanie w języku Python, Java lub .Net. Nie daj się zwieść modnym słowom takim jak HTML5 i obietnica „biegnij gdziekolwiek”; możesz mieć przenośny kod między urządzeniami tylko tak długo, jak długo obsługiwana jest na nich cała platforma. Wszelkie zmiany w stosie programistycznym, a oprogramowanie ulegnie awarii.
Tak więc cena do zapłacenia polega na tym, że podążasz za ruchomym celem, ponieważ wypuszczane są nowe wersje platformy; musisz nadrobić zaległości, aby aplikacja działała wraz z rozwojem platformy. Jedyną korzyścią jest pół-uniwersalny mechanizm dostarczania aplikacji, który nie zależy od pakietów ani sklepów z aplikacjami; ale tracisz główną funkcję odróżniającą sieć od poprzednich systemów komputerowych podłączonych do sieci.
Strony zorientowane na treść to inna bestia; są w tradycji klasycznej sieci WWW. Treść jest luźno interpretowana przez klienta, który może dokonać dowolnej pożądanej transformacji przed prezentacją. Oczekuje się, że strona będzie dostępna przez ekosystem różnych platform, które mogą, ale nie muszą obsługiwać obecnych standardów:
Stracisz je wszystkie, jeśli potrzebujesz aktualnego gatunku javascript, który zawsze się rozwija. W tym kontekście zepsuty JavaScript, który uniemożliwia dostęp do treści, jest grzechem.
Każdy, kto mówi, że „użycie javascript powinno być zminimalizowane” opowiada się za tym stylem. Uwzględnij trochę JS, pamiętaj, ale wszystkie funkcje powinny być nadmiarowe z podstawowym dostępem do treści, które można uzyskać po stronie serwera:
Zaletą tego podejścia jest mniej testów i aktualizacji oraz dłuższy okres przechowywania. Pierwsze statyczne strony sprzed 20 lat nadal można przeglądać w dowolnym kliencie internetowym, ale pierwsze aplikacje internetowe są na zawsze zepsute. Jeśli Twoja witryna ma jakąkolwiek wartość archiwizacyjną, na dłuższą metę skorzystasz z Internetu jako systemu dostarczania treści, a nie platformy aplikacji.
Pracuję dla mojego rządu stanowego, w związku z czym większość mojego rozwoju dotyczy interaktywnych stron internetowych opartych na danych. Zapytania w stosunku do danych historycznych, formularzy, tego typu rzeczy. Utrzymujemy nasz Javascript na absolutnym minimum z następujących powodów:
1) Sprawdzanie poprawności danych wejściowych formularza zawsze powinno odbywać się po stronie serwera, nigdy po stronie klienta. Jeśli spróbujesz sprawdzić poprawność danych wejściowych po stronie klienta, haker musi jedynie utworzyć lokalną kopię strony internetowej i ponownie napisać Javascript, aby zezwolić na to, co chce Ci wysłać (wstrzyknięcie SQL itp.). Twoja weryfikacja musi odbywać się gdzieś pod twoją wyłączną kontrolą, tj. Na serwerze.
2) Wielu użytkowników wyłącza Javascript lub używa przeglądarki, która może go nieprawidłowo zaimplementować. Jako rząd musimy wspierać wszystkich, nawet jeśli używają naprawdę NAPRAWDĘ starego sprzętu. HTML działa wszędzie; JavaScript, nie tak bardzo. Nie używając Javascript na twoich stronach internetowych, dajesz im naprawdę mały ślad na komputerze klienckim, zużywając niewiele zasobów. Maksymalizuje to liczbę osób, które mogą uzyskać dostęp do twoich treści. Z tego samego powodu nie powinieneś być zbyt szalony w swoim CSS. Uprość to, utrzymuj w czystości i pozwól małym starszym kobietom zobaczyć twoją stronę, nawet jeśli ich komputer został zakupiony w 1999 roku (nawiasem mówiąc, otrzymujemy telefony od pomocy technicznej od takich osób).
3) JavaScript, który jest narzędziem preferowanym przez „programistów”, a nie programistów po stronie serwera, wydaje się być dość brzydki. A projektanci (którym zwykle są twórcy stron internetowych, jeśli chcesz być szczery) nie mają problemu z pobieraniem „skryptów” z przypadkowych miejsc w sieci. Mówią takie rzeczy, jak „po co wymyślać koło?” i „Nie wymyślono tutaj”. Zamiast pisać własny kod, często po prostu wychodzą i biorą coś z innej strony, myśląc, że jeśli jest w Internecie, jest to uczciwa gra. Są z tym dwa problemy: A) mogą przypadkowo opublikować złośliwy kod JavaScript, który zajmuje trochę czasu, a B) mogą naruszyć czyjeś prawa autorskie i doprowadzić cię do pozwu. Obie sytuacje należy unikać.
OGÓLNIE JavaScript jest złym pomysłem. ŻADNY kod po stronie klienta jest złym pomysłem. Strona klienta powinna zawierać tylko język znaczników i CSS; niech po stronie serwera poradzi sobie z ciężkim podnoszeniem.
To zależy.
Chociaż można oczekiwać, że klienckie programy klienckie będą w znaczący sposób obsługiwać i uruchamiać skrypt javascript, nie wszystkie aplikacje klienckie są graficznymi przeglądarkami komputerowymi i musisz zdecydować, czy chcesz je obsłużyć.
Przykłady obejmują:
Moja ogólna zasada jest taka, że jeśli jest to aplikacja internetowa dla zwykłych użytkowników (wewnętrzna, społeczność, tego typu rzeczy), to poleganie na javascript jest w porządku, ale jeśli chcesz być publicznie dostępny i możliwy do znalezienia, to przynajmniej najważniejsze funkcjonalność powinna działać bezbłędnie bez javascript, i powinieneś zawodzić z wdziękiem, gdy jej potrzebujesz, zamiast wykazywać „niezdefiniowane” zachowanie.
Staromodne podejście jest całkowicie przestarzałe. Na przykład zrobiłem usunięcie ajaxowe dla moderatora na jednej ze stron, a on jest po prostu szczęśliwy z powodu oczywistego wzrostu prędkości.
Oczywiście programista może zrobić dwie wersje zarówno dla użytkowników JS, jak i nie-JS, ale w większości przypadków jest to wyjątkowo kosztowne i nie jest warte 1-2% odbiorców witryny (oczywiście jeśli nie jesteś Google).
Więc moja odpowiedź brzmiałaby NIE - JavaScript jest odpowiedzią na wiele pytań związanych z wrażeniami użytkowników, dlaczego nie powinienem jej używać?
Z mojego doświadczenia wynika, że firmy wyłączały JavaScript według zasad. Ale ten czas już minął. Obecnie zbudowałem kilka dużych aplikacji intranetowych i aplikacji internetowych dla większych globalnych firm. We wszystkich aplikacjach użycie JavaScript i JQuery było częścią rzeczy, których oczekuje klient.
Budowanie aplikacji dla klientów to już nie tylko szybkość i bezpieczeństwo. Klient chce skupić się na użyteczności i wykorzystaniu technologii AJAX. Bez użycia JavaScript nie byłoby tak dobrze. PostBacks cały czas dla niektórych bardzo małych zadań, takich jak obliczenia lub coś takiego, dla większości firm nie jest opcją.
Kiedy myślimy o obecnych sytuacjach w większych firmach, pojawia się kolejny wskaźnik, dlaczego JavaScript jest obecnie obowiązkowy. Spójrz na systemy CMS, które obecnie działają w biznesie. Większość z nich korzysta z Microsoft SharePoint lub Adobe CQ, niektóre z nich Drupal lub jakikolwiek inny i tak dalej. Wszystkie te systemy korzystają z JavaScript. Bez javascript większość aplikacji nie działałaby zgodnie z oczekiwaniami użytkownika.
W minionych czasach JavaScript był wykorzystywany i nadużywany, a skrypty były (uważane za) pełne luk w zabezpieczeniach i źródłem złośliwego oprogramowania.
Wiele sieci korporacyjnych zareagowało wyłączeniem JS, zasadą, która (słusznie lub błędnie) nadal istnieje w wielu organizacjach do dziś.
Po prostu sugeruję, że żadna strona nie powinna polegać na JS
Jak wyjaśnia większość odpowiedzi tutaj, używanie javascript
nie szkodzi. Jeśli chcesz zapisać kodowanie i niechlujnie wyglądający kod źródłowy, spróbuj coffee-script
zaoszczędzić wiele czasu na pisaniu javascript
.