Ich erwäge, eine Website zu erstellen, die nur Benutzer mit aktiviertem JavaScript unterstützt.
Meine Rechtfertigung dafür ist, dass ich in einem ziemlich begrenzten Zeitbudget eine umfangreiche Benutzererfahrung anbieten möchte. Wenn ich also nur Leute unterstütze, die JS aktiviert haben, muss ich keine Zeit darauf verwenden, dafür zu sorgen, dass die Benutzeroberfläche nicht funktioniert JS und erstelle serverseitige Entsprechungen für die Validierung usw.
Ihre Begründung ist in Ordnung. Allerdings müssen Sie die Validierung auf der Serverseite implementieren, da sonst der Missbrauch Ihres Codes sehr einfach ist, indem Sie nur JavaScript deaktivieren.
Nein, es "unmöglich" zu machen, Daten ohne JavaScript einzureichen, löst es nicht.
Aus persönlicher Erfahrung denke ich, dass die meisten Internetnutzer heutzutage aktiviert sind. Der Anteil der Nutzer, die möglicherweise Probleme mit der JS-schweren Website haben, ist auf Mobilgeräte basierende Nutzer. Wenn Sie diese Nutzer also nicht erreichen müssen, dürfte dies kein großes Problem darstellen.
Der einfachste Weg, JS mit nur einer einzigen Weiterleitung zu ermitteln, wäre, einen Cookie mit JavaScript-Code (document.cookie) zu setzen und dann die oben erwähnte window.location zu verwenden, um umzuleiten. Danach sollte der Server den von JS gesetzten Cookie lesen können, vorausgesetzt, er ist aktiviert.
Auch wenn es ziemlich schwierig ist, Validierungsregeln und andere Logik automatisch auf dem Server und dem Client mit Tech wie C # zu teilen, würde ich vorschlagen, Aptana Jaxer auszuprobieren. Jaxer ist ein JavaScript-basiertes serverseitiges Framework, mit dem Sie unter anderem den gleichen JavaScript-Code sowohl auf dem Client als auch auf dem Server freigeben können. Sehr schön, wenn Sie auf dem Client validieren möchten, aber Ihre Validierungsregeln nicht zweimal schreiben möchten!
Siehe:
Wie bei der Validierung sollten Sie immer die serverseitige Validierung und nie die clientseitige Validierung verwenden. Du verlangst nur, dass du sonst gehackt wirst.
Wenn Sie eine reichhaltige Nutzererfahrung haben und / oder nicht die Zeit haben, zwei (oder mehr) Versionen Ihrer Website für einen so kleinen Prozentsatz bereitzustellen, denke ich, dass wir die Zeit dort erreicht haben, wo das ist normalerweise akzeptabel.
Es hängt jedoch von den Umständen ab. Bestimmte Websites können auf Anwendungen abzielen, die Javascript unverhältnismäßig deaktivieren usw.
Sie verpassen ein paar Browser-Szenarien:
Heutzutage sind die einzigen Leute, die JS nicht benutzen, normalerweise:
Verwenden Sie in ASP.NET oder einer HTML-Site:
%Vor%Dadurch werden sie auf eine Seite für JavaScript-Benutzer umgeleitet, die möglicherweise einen Cookie oder etwas festlegen, nach dem Sie auf Ihrer Masterseite suchen können. Wie so (oder ähnlich):
(in hasJs.aspx):
%Vor%(Site.master):
%Vor%Das ist natürlich möglich und wenn der Kunde (wenn Sie einen haben) zustimmt, ist es in Ordnung. Aber Sie müssen immer noch eine Validierung auf der Serverseite durchführen. Sonst wird ein Script-Kid (auch wenn es in einer Corporation verwendet wird) Ihr Skript zerstören und vielleicht sogar Dinge tun, die Sie nicht passieren wollten.
Sie würden mit JS überprüfen, ob JS aktiviert ist;)
Bitte nehmen Sie das nicht als Kritik an Ihren Plänen. Die Auswahl, um Javascript zu verlangen, liegt sicherlich bei Ihnen - obwohl, wie andere bereits erwähnt haben, Sie möglicherweise Bedenken hinsichtlich der Barrierefreiheit haben. Sie können es jedoch einfacher finden, eine Website zu entwickeln, die JavaScript-freundlich ist und ASP.NET MVC statt WebForms verwendet.
Die neuen AjaxHelper-Erweiterungen machen es beinahe trivial, Code zu verwenden, der für die meisten Leute auf AJAX angewiesen ist, aber in Abwesenheit von Javascript im Client funktioniert. Offensichtlich ist die Erfahrung für Leute, die es nicht haben, verschlechtert - mehr noch, wenn Sie jQuery-Plugins für Tabs / Menüs, Popups usw. verwenden - aber es ist immer noch verwendbar. Das Framework bietet einen ziemlich einfachen Mechanismus auf der Serverseite, um zu bestimmen, ob die Anfrage eine AJAX-Anfrage ist oder nicht, damit Sie angemessen reagieren können, indem Sie eine neue Ansicht rendern oder JSON / HTML / XML zurückgeben.
Ich weiß, dass ich es viel einfacher finde, barrierefreie Websites mit MVC zu schreiben als mit WebForms.
Tags und Links javascript c# asp.net