Ist es üblich, die Verwendung von JavaScript beim Erstellen einer Website zu minimieren? [geschlossen]


32

Ich bin seit fast 10 Jahren ein Webentwickler und habe mir angewöhnt, kein JavaScript zu verwenden, wann immer dies möglich ist. Ich spreche hier nicht vom Erstellen von Web-Apps, sondern von datenbankgesteuerten Websites.

Ist das ein guter / respektierter Ansatz?


6
Ich deaktiviere Standard-Javascript und noscript sagt mir, aus welchen Quellen javscripts geladen werden. Es ist nicht ungewöhnlich, dass eine Website Java-Skripte aus über 10 sekundären Quellen lädt, die wiederum auch Java-Skripte aus tertiären Quellen laden. Und es ist nicht ungewöhnlich, dass eine Seite Javascript aus weit über 20 externen Quellen lädt. Also würde ich sagen: die Minimierung der Verwendung von Javascript ist aus dem Fenster.
Pieter B

9
Ich habe festgestellt, dass Ihre Website umso weniger navigations- und SEO-freundlich ist, je mehr Javascript Sie verwenden. Ich kann nicht zählen, wie viele Websites ich wegen "Javascript-Links" und dergleichen verlassen habe.
BiAiB

1
Ich habe festgestellt, dass es sehr viel Javascript im Internet gibt. Die Probleme sind: 1) einfache Indexer verstehen js nicht, 2) große Menge von js brennt die CPU 3) einige Plattformen haben noch keine js (Telefone, Linkbrowser). Es ist also eine gute Praxis, js zu vermeiden, wenn es nicht benötigt wird.
Permeakra

Warum ist diese Frage der Woche? Ich würde dies nicht klar und nicht konstruktiv stimmen. Im Allgemeinen "sollte ich X verwenden?" Fragen sind auf dieser Seite nicht erwünscht. Vielleicht kann mich jemand aufklären.
Mark E. Haase

Der Microsoft-Webstack hat sich (bis jetzt mit MVC) bei JEDEM EINZELKLICK in ASP.NET und SharePoint auf JS verlassen. Also nein, es ist nicht üblich, die Nutzung zu minimieren.
Graham

Antworten:


51

Es ist der Instinkt der meisten Programmierer, alle Arten von Code zu reduzieren . Je weniger Code, desto weniger Komplexität und desto weniger mögliche Fehlerpunkte in diesem Code. Diese Regel gilt für Javascript ebenso wie für andere Sprachen. Sie halten nur an der Tradition fest.

Verwenden Sie Javascript nach Bedarf / Wunsch in HTML-Seiten ... aber es gibt keinen Grund, es zu verwenden, wenn es nicht wirklich benötigt wird.


9
Das Vermeiden von JavaScript unterscheidet sich vom allgemeinen Instinkt, mehr Code zu vermeiden. Mit JS geht es nicht nur darum, die Komplexität der Entwicklung zu reduzieren. Es gibt echte Kompatibilitätsprobleme mit Ihren Benutzern.
jhocking

34

Vor 10 Jahren war das vielleicht eine gute Idee. Heutzutage sind die meisten Teile des Internets (zumindest einige sehr beliebte Teile) fast unbrauchbar geworden oder bieten nur eine sehr eingeschränkte Funktionalität, wenn Sie Javascript im Browser deaktivieren. IMHO können Sie heute erwarten, dass Ihre Benutzer Javascript aktiviert haben.

Und es gibt viele Frameworks wie JQuery, um Browser-Inkompatibilitäten zu umgehen. IMHO gibt es heute keinen wirklichen Grund, warum Sie sich einschränken sollten, indem Sie kein Javascript für Ihre Website verwenden - der einzige Grund kann sein, dass Sie keine Verwendung dafür haben.

BEARBEITEN: Eine andere Frage ist: Wenn Sie eine minimale Funktionalität Ihrer Website bereitstellen sollten, wenn Ihre Besucher JS nicht aktiviert haben , ist dies meistens eine gute Idee, aus den Gründen, die einige Kommentatoren hervorgehoben haben.

EDIT2: Sicherlich muss man für jede Website ein Gleichgewicht zwischen Benutzerfreundlichkeit, Suchmaschinenfreundlichkeit und Entwicklungsaufwand finden. IMHO heute Javascript kann dazu beitragen, dieses Gleichgewicht zu verbessern - wenn mit Bedacht verwendet. Ich denke, es ist nicht mehr nötig, die Verwendung von Javascript generell zu minimieren, um dieses Gleichgewicht zu halten. Verwenden Sie es mit Vorsicht und dämonisieren Sie es nicht.


17
Hier einige Beispiele: SEO, Webaggregatoren, Bildschirmleser, NoScript, Curl, mobile Browser. Ich deaktiviere Skripte standardmäßig und das meiste Internet funktioniert immer noch einwandfrei.
Tdammers

7
Wenn eine Website ohne Javascript nicht verwendet werden kann, kann sie von Google nicht effektiv gecrawlt werden und kann möglicherweise in einem REST-konformen Kontext verwendet werden. Auch Facebook ist ohne Javascript zumindest minimal nutzbar
GordonM

9
Ich stimme den meisten Aussagen hier zu, lehne jedoch nachdrücklich die Idee ab, dass eine Website "zumindest minimal ohne JavaScript nutzbar sein sollte". Das ist falsch: es sollte ohne JavaScript maximal nutzbar sein.
Jörg W Mittag

4
@ JörgWMittag Wenn Sie eine Web-Technologie deaktivieren, sollten Sie nicht damit rechnen, dass Sie alle Vorteile der Website nutzen können. Die Szenarien sind unterschiedlich, aber wenn ich eine Web-App erstelle, verschwende ich wahrscheinlich nicht meine Zeit damit, die Kompatibilität für eine Minderheit meiner Benutzer zu verbessern, die sich weigern, in das 21. Jahrhundert zu wechseln. Ähnlich wie ich IE 6 in den meisten meiner Projekte nicht unterstütze.
Tom Marthenal

2
Es ist nur professionell, alle Anwendungsfälle zu unterstützen. Wenn Sie es verpasst haben, ist das in Ordnung, jeder irrt sich hin und wieder, aber sie zu vernachlässigen, ist ein anderes Problem. Ich bin immer bereit, Websites zu 100% OHNE JS zu entwickeln, und nachdem es funktioniert, füge JS hinzu, um Aufgaben zu rationalisieren und die UX zu verbessern.
Spidey

13

Wenn eine Site ohne JavaScript verwendet werden kann, ist sie für ein möglichst breites Publikum verfügbar. Es stimmt zwar, dass die Mehrheit der Browser JavaScript unterstützt und die Mehrheit der Benutzer es standardmäßig aktiviert lässt, aber Sie können sich nicht sicher darauf verlassen. Schließlich ist nicht alles, was auf Ihre Website zugreift, ein Browser. Wenn Sie möchten, dass Ihre Website von Suchmaschinen wie Google ordnungsgemäß indiziert wird, muss GoogleBot in der Lage sein, Ihre Website ohne JavaScript zu navigieren.

Es gibt auch spezielle Webbrowsersoftware, bei denen JavaScript nicht verfügbar ist oder nicht wie erwartet funktioniert. Bildschirmlese- oder Braille-Software, die beispielsweise von Sehbehinderten verwendet wird. Es gibt auch Umgebungen, in denen der Arbeitsspeicher beschränkt ist und große Mengen an Javascript das Surferlebnis unangenehm oder sogar unpraktisch machen können, wie z. B. Smartphone-Browser.

Sie sollten sich mit dem Konzept der "progressiven Verbesserung" befassen, bei der Sie eine Site erstellen, die ohne JavaScript funktioniert, und dann eine JavaScript-Ebene hinzufügen, um die Benutzerfreundlichkeit zu verbessern. Auf diese Weise erhalten Sie eine Website, die zumindest für Benutzer ohne Javascript geeignet ist.

Sie müssen sich nicht bemühen, alle Funktionen, die Sie mit JavaScript implementieren möchten, für Browser bereitzustellen, die kein JavaScript sind. Es ist jedoch weiterhin wichtig, zumindest die grundlegenden Anwendungsfälle ohne JavaScript verfügbar zu lassen. Die Möglichkeit, die Website zu durchsuchen, steht natürlich ganz oben auf der Liste. Wenn Sie jedoch eine E-Commerce-Website erstellen, ist es albern, den Checkout-Prozess von JavaScript abhängig zu machen, da dies Ihren Umsatz kosten könnte.


4
Absolut. Als Gewürz sollte Javascript verwendet werden, nicht das Hauptgericht.
29.

9

Die anderen Antworten scheinen sich auf "sollte ich niemals JavaScript verwenden" zu konzentrieren, also denke ich, dass sie den Punkt verfehlen. Sie sollten kein JavaScript verwenden, wenn Sie es nicht benötigen. Manche Leute benutzen JavaScript für alles :

  • Hover-Effekte (sollte CSS sein)
  • AJAX (sollte haben, hrefwenn angemessen)
  • Positionierung (sollte CSS sein)

Die Vorteile sind Dinge wie:

  • Die Seite wird schneller angezeigt
  • CSS ist die meiste Zeit deutlich weniger komplex als JavaScript
  • Mit Backup- hrefLinks können Suchmaschinen, Benutzer, die Links auf anderen Registerkarten öffnen möchten, und Benutzer, die JavaScript hassen, Unterstützung erhalten

Natürlich ist AJAX ziemlich cool, genauso wie dynamische Seiten. Werfen Sie diese Dinge also nicht weg, nur weil manche Leute sie nicht brauchen.

Mein Punkt ist, zu lernen, wie man Dinge ohne JavaScript macht, ist gut, JavaScript zu minimieren, und ein Backup zu haben, wenn JavaScript nicht funktioniert, ist gut, aber es gibt keinen Grund, Features zu vermeiden, weil sie JavaScript erfordern.


1
Ich erinnere mich, dass ich vor vielen Jahren einige Ratschläge zu (damals so genannten) Man-Machine-Interfaces erhalten habe: Ton und dergleichen sollte man mit an Bord nehmen.
Andrew

8

Es ist eine gute Idee, unnötige Funktionen zu vermeiden. Frameworks wie jQuery machen es unglaublich einfach, Schnickschnack hinzuzufügen, was zwar sinnvoll ist, aber manchmal nicht. Zum Beispiel:

Müssen Sie das wirklich animieren?

... oder ...

Wird für einen so trivialen Selektor wirklich das Durchlaufen des gesamten DOM benötigt? Könnten Sie den Kontext einschränken, und brauchen wir das überhaupt?

Ich würde es nicht vermeiden , JS zu verwenden, aber ich achte darauf, nicht unangenehm zu sein, während ich nach langsameren Maschinen Ausschau halte. Das Gleiche gilt für einige der ausgefallenen neuen Dinge, die wir in CSS3 bekommen - wie Schlagschatten ... wenn sie übermäßig verwendet werden, können sie dazu führen, dass jemand auf einem Computer mit geringerer Leistung eine wirklich schlechte Erfahrung macht.

Die Ausnahme könnte darin bestehen, Front-End-Steuerelemente für verschiedene Arten von Appliances zu schreiben, bei denen JS unbedingt deaktiviert sein muss (möglicherweise schreibt eine strenge Sicherheitsrichtlinie in einem Rechenzentrums-Verwaltungsnetzwerk kein JS vor). Daher sollte das Obige im Zusammenhang mit Ihren jeweiligen Anforderungen gesehen werden.


6

Ich glaube, dass ich als relativ neuer und junger Webentwickler (ca. 4 Jahre) viel darüber recherchieren musste, da Javascript überall ist.

Bei meinen Projekten versuche ich sicherzustellen, dass die Site ohne Javascript funktioniert, und füge dann Javascript hinzu, wo es sinnvoll ist (clientseitige Validierung, Verbesserung der Benutzeroberfläche usw.). Es ist eine Art progressive Verbesserung und es kümmert sich um SEO, deaktiviertes Javascript und ältere Browser-Inkompatibilitäten.

Dieselbe Frage wurde auf SO gestellt, aber ich kann mich aus Liebe nicht erinnern, wo.


5

Die Verwendung von JavaScript kann in mehreren Fällen eingeschränkt sein:

  • Validierung. Dies muss serverseitig erfolgen. In Webanwendungen gibt es manchmal eine schnelle clientseitige Validierung, die jedoch nicht ausreicht.
  • Extrem wichtige Aufgaben. Benutzer können die Skripte ihres Browsers deaktivieren, sodass der JS-Code überhaupt nicht funktioniert. Wenn Sie sicher sein möchten, dass etwas in jedem Browser funktioniert, vertrauen Sie es JS nicht an.
  • Geschwindigkeit. Der JS-Code muss an den Client gesendet werden. Je mehr Code Sie schreiben, desto länger dauert dies. Obwohl kleine Mengen von Code keine praktische Wirkung haben.

JS verfügt über eine Vielzahl von Funktionen, die nicht durch serverseitigen Code ersetzt werden können. Abgesehen von den oben genannten gibt es meines Erachtens kein vernünftiges Argument, um die Verwendung von JS einzuschränken.


5

" Datenbankgesteuerte Websites " ist der Schlüssel zur Antwort. Es gibt zwei Möglichkeiten, Websites zu erstellen, und die zulässige Menge an Javascript hängt davon ab, welche Sie tatsächlich verwenden. Sie können bauen:

  1. Inhaltsbezogene Websites . Im ersten Fall sind die Zauberwörter "progressive Verbesserung"; Beschränken Sie Javascript auf redundante Funktionen, die mit klassischen Zugriffen auf Inhalte über einfaches HTTP bereitgestellt werden können.

  2. Webanwendungen . Für Anwendungen verwenden Sie stattdessen das Web als Softwareplattform. Apps basieren auf einigen Annahmen über die verfügbare Software - moderne Browser, neueste Versionen der gängigen Javascript-Bibliotheken, Desktop-Zugriffe mit der Maus und / oder Tablets mit Multi-Touch.

Das Web als Softwareplattform

Die Mindestanforderungen für den Zugriff sind in Ordnung, wenn Sie wirklich eine Anwendung erstellen. Sie zielen auf eine bestimmte Plattform ab, um erweiterte Funktionen zu erhalten, die sonst nicht erstellt werden könnten. Es ist wie für Python oder Java oder .Net zu entwickeln. Lassen Sie sich nicht von Modewörtern wie HTML5 und dem Versprechen täuschen, "irgendwo hinzulaufen". Sie können zwischen Geräten nur portablen Code verwenden, solange die gesamte Plattform auf diesen Geräten unterstützt wird. Jede Änderung am Entwicklungsstapel und an der Software führt zu einer Unterbrechung.

Der zu zahlende Preis ist also, dass Sie einem sich bewegenden Ziel folgen, wenn neue Versionen der Plattform veröffentlicht werden. Sie müssen aufholen, damit Ihre App bei der Weiterentwicklung der Plattform funktioniert. Der einzige Vorteil, den Sie erhalten, ist ein semi-universeller Bereitstellungsmechanismus für Ihre App, der nicht von Paketen oder Anwendungsspeichern abhängt. Sie verlieren jedoch die Hauptfunktion, die das Web von früheren vernetzten Computersystemen unterscheidet.

Das Web als Inhaltslieferung

Inhaltsbezogene Websites sind ein anderes Biest. Sie stehen in der Tradition des klassischen World Wide Web. Der Inhalt wird vom Kunden lose interpretiert und kann vor der Präsentation beliebig verändert werden. Der Zugriff auf die Site wird von einem Ökosystem verschiedener Plattformen erwartet, die möglicherweise die aktuellen Standards unterstützen oder nicht:

  • Mobile Geräte unterstützen weniger als die neuesten und teuersten Schnickschnack
  • Alte Browser-Benutzer, die nicht (im Unternehmen) oder nicht (zu Hause) wissen, wie sie aktualisieren sollen
  • Zukünftige Versionen beliebter Engines, die ihre alten APIs nicht mehr verwenden

Sie verlieren sie alle, wenn Sie die aktuelle, sich ständig weiterentwickelnde Version von Javascript benötigen. In diesem Zusammenhang ist defektes Javascript, das den Zugriff auf den Inhalt verhindert, eine Sünde.

Jeder, der sagt, dass "die Verwendung von Javascript minimiert werden sollte", spricht sich für diesen Stil aus. Es ist in Ordnung, ein paar JS einzuschließen, aber alle Funktionen sollten redundant sein, mit grundlegenden Zugriffen auf Inhalte, die serverseitig erzielt werden könnten:

  • Validierung der Dateneingabe
  • AJAX-Aktualisierungen von Inhalten für die schnellste Navigation (das funktioniert trotzdem ohne JS)

Der Vorteil dieses Ansatzes besteht darin, dass weniger Tests und Upgrades erforderlich sind und die Haltbarkeit erhöht wird. Die ersten statischen Webseiten von vor 20 Jahren sind in jedem Webclient noch durchsuchbar, aber die ersten Webanwendungen sind für immer kaputt. Wenn Ihre Site überhaupt einen Archivierungswert hat, profitieren Sie langfristig von der Verwendung des Webs als Content Delivery-System und nicht als Anwendungsplattform.


3

Ich arbeite für meine Landesregierung, weshalb der größte Teil meiner Entwicklung datengesteuerte interaktive Websites umfasst. Abfragen von historischen Daten, Formulareingaben usw. Wir halten unser Javascript aus folgenden Gründen auf ein absolutes Minimum:

1) Die Validierung von Formulareingaben sollte immer auf der Serverseite erfolgen, niemals auf der Clientseite. Wenn Sie versuchen, Ihre Eingaben auf der Clientseite zu validieren, muss ein Hacker lediglich eine lokale Kopie Ihrer Webseite erstellen und das Javascript neu schreiben, um zuzulassen, was er Ihnen senden möchte (SQL-Injection usw.). Ihre Validierung muss irgendwo unter Ihrer ausschließlichen Kontrolle erfolgen, dh auf dem Server.

2) Viele Benutzer deaktivieren entweder Javascript oder verwenden einen Browser, der es möglicherweise nicht richtig implementiert. Als Regierung müssen wir alle unterstützen, auch wenn sie wirklich WIRKLICH alte Geräte verwenden. HTML funktioniert überall. Javascript, nicht so sehr. Indem Sie auf Ihren Webseiten kein Javascript verwenden, können Sie auf dem Client-Computer nur einen sehr geringen Platzbedarf mit wenigen Ressourcen erzielen. Dies maximiert die Anzahl der Personen, die auf Ihre Inhalte zugreifen können. Aus dem gleichen Grund sollten Sie mit Ihrem CSS nicht zu verrückt werden. Halten Sie es einfach, halten Sie es sauber und lassen Sie kleine alte Damen Ihre Website sehen, auch wenn ihr Computer 1999 gekauft wurde (wir erhalten übrigens Anrufe beim technischen Support von Leuten wie diesen).

3) Javascript ist ein Tool, das eher von "Web-Entwicklern" als von serverseitigen Programmierern bevorzugt wird und dazu neigt, ziemlich hässlich zu sein. Und Designer (das ist, was Webentwickler normalerweise sind, wenn Sie ehrlich sein wollen) neigen dazu, das Problem beim Herunterladen von "Skripten" von zufälligen Stellen im Web nicht zu sehen. Sie sagen Dinge wie "Warum das Rad neu erfinden?" und "hier nicht erfunden". Anstatt ihren eigenen Code zu schreiben, holen sie sich oft etwas von einer anderen Site und denken, dass es ein faires Spiel ist, wenn es im Internet ist. Dabei gibt es zwei Probleme: A) Sie veröffentlichen möglicherweise versehentlich ein bösartiges Javascript, das Sie erst nach einer Weile abfangen können, und B) sie verstoßen möglicherweise gegen das Urheberrecht einer anderen Person und werden verklagt. Beide Situationen sind zu vermeiden.

IM ALLGEMEINEN ist Javascript eine schlechte Idee. Client-Code jeglicher Art ist eine schlechte Idee. Die Client-Seite sollte nur Markup-Sprache und CSS enthalten. Lassen Sie die Serverseite das schwere Heben handhaben.


2

Es hängt davon ab, ob.

Von Desktop-Benutzeragenten wird erwartet, dass sie Ihr Javascript auf sinnvolle Weise unterstützen und ausführen. Allerdings sind nicht alle Benutzeragenten grafische Desktop-Browser, und Sie müssen entscheiden, ob Sie sie unterstützen möchten.

Beispiele beinhalten:

  • Suchmaschinen (Google tut laufen einige Javascript, aber sicher nicht alles, und wenn Sie auf Javascript angewiesen für die Navigation, Suche Bots möglicherweise nicht alle Ihre Inhalte finden)
  • Aggregatoren und Schaber
  • Textbasierte Browser (diese werden jedoch nicht von vielen verwendet)
  • Screenreader und andere Lesehilfen
  • (einige) mobile Browser

Meine Faustregel lautet: Wenn es sich um eine Webanwendung für reguläre Benutzer handelt (Inhouse, Community usw.), ist es in Ordnung, sich auf JavaScript zu verlassen. Wenn Sie jedoch öffentlich zugänglich und auffindbar sein möchten, ist dies zumindest das Entscheidende Die Funktionalität sollte ohne Javascript einwandfrei funktionieren, und Sie sollten ordnungsgemäß versagen, wenn Sie sie benötigen, anstatt ein "undefiniertes" Verhalten aufzuweisen.


2

Der altmodische Ansatz ist völlig veraltet. Zum Beispiel habe ich eine Ajax-Löschung für den Moderator auf einer der Seiten vorgenommen und er ist nur glücklich über die offensichtliche Geschwindigkeitssteigerung.

Natürlich kann der Entwickler zwei Versionen sowohl für JS- als auch für Nicht-JS-Benutzer erstellen, aber in den meisten Fällen ist dies extrem teuer und nicht wertvoll für 1-2% der Website-Besucher (wenn Sie nicht Google sind, natürlich).

Meine Antwort wäre also NEIN - JavaScript ist die Antwort auf viele Fragen zur Benutzererfahrung. Warum sollte ich es nicht verwenden?


1

Meiner Erfahrung nach gab es eine Zeit, in der Unternehmen JavaScript nach Richtlinien deaktivierten. Aber diese Zeit ist längst vorbei. Derzeit habe ich einige große Intranetanwendungen und Webanwendungen für größere globale Unternehmen erstellt. Für alle Anwendungen war die Verwendung von JavaScript und JQuery Teil der Erwartungen des Kunden.

Das Erstellen von Anwendungen für Kunden ist nicht mehr nur Geschwindigkeit und Sicherheit. Der Kunde möchte sich auf die Benutzerfreundlichkeit und den Einsatz der AJAX-Technologie konzentrieren. Ohne die Verwendung von JavaScript würde es nicht so gut funktionieren. PostBacks die ganze Zeit für einige sehr kleine Aufgaben wie Berechnung oder so etwas ist für die meisten Unternehmen keine Option.

Wenn wir über die aktuellen Situationen in größeren Unternehmen nachdenken, gibt es einen weiteren Indikator, warum JavaScript derzeit ein Muss ist. Schauen Sie sich die CMS-Systeme an, die derzeit in Betrieb sind. Die meisten verwenden Microsoft SharePoint oder Adobe CQ, einige Drupal oder andere und so weiter. Alle diese Systeme basieren auf JavaScript. Ohne Javascript würde die meiste Anwendung nicht funktionieren, wie der Benutzer es erwartet.


0

In früheren Zeiten wurde JavaScript verwendet und missbraucht, und Skripte waren (als voll empfunden) mit Sicherheitslücken und einer Quelle von Malware.

Viele Unternehmensnetzwerke haben darauf reagiert, indem sie JS deaktiviert haben, eine Richtlinie, die (zu Recht oder zu Unrecht) in vielen Unternehmen noch heute existiert.

Ganz einfach, ich schlage vor, dass sich keine Website auf JS verlassen sollte, um zu funktionieren


3
Ich denke, diese Option ist völlig veraltet. Die meisten Unternehmen verwenden SharePoint oder CQ für Intranetlösungen. Beide Systeme verlassen sich wirklich auf JS.
Smokefoot

Ich lehne es absolut ab, dass "die meisten Unternehmen" Sharepoint verwenden ... und selbst für Unternehmen, die JS intern zulassen, können sich die Intraneteinstellungen von den externen unterscheiden.
Andrew

0

Wie die meisten Antworten hier erklären, ist die Verwendung javascriptkein Schaden. Wenn Sie Ihre Codierung und den unordentlich aussehenden Quellcode speichern möchten, sollten Sie versuchen, coffee-scriptdies spart viel Mühe bei der Eingabe javascript.

http://coffeescript.org/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.