Ne supporte que les utilisateurs ayant le Javascript activé

Je envisage de créer un site Web qui ne prend en charge que les utilisateurs avec JavaScript activés.

Ma justification est que je souhaite offrir une expérience utilisateur riche, dans un budget de temps assez limité, donc si je ne supporte que les personnes ayant JS habilitées, je n'ai pas à passer du temps à m'assurer que l'IU fonctionne sans JS et à créer Équivalents côté serveur pour validation etc.

  1. Est-ce possible? Est-ce que différents navigateurs \ plates-formes m'empêchent de réaliser cela?
  2. Quel pourcentage d'utilisateurs ont JS désactivé ces jours-ci?
  3. Comment puis-je vérifier si JS est activé dans C #.

Votre justification est bonne. Cependant, vous devez implémenter la validation sur le côté serveur des choses, sinon l'abus de votre code sera très simple en désactivant simplement JavaScript.

Non, rendre "impossible" de soumettre des données sans JavaScript ne le résoudra pas.

Du fait de l'expérience personnelle, je pense que la plupart des utilisateurs d'Internet ont déjà activé JS. La partie des utilisateurs qui peuvent avoir des problèmes avec le site lourd JS est un utilisateur mobile, donc, à moins que vous ne les atteigniez, il ne devrait probablement pas s'agir d'un problème majeur.

La manière la plus simple de déterminer JS avec une seule redirection serait de définir un cookie avec le code JavaScript (document.cookie), puis d'utiliser la fenêtre window.location ci-dessus pour la redirection. Après cela, le serveur devrait pouvoir lire le cookie défini par JS, en supposant qu'il soit activé.

En outre, s'il est assez difficile de partager les règles de validation et d'autres logiques automatiquement sur les deux serveurs et le client en utilisant la technologie comme C #, je suggère de consulter Aptana Jaxer. Jaxer est un framework côté serveur basé sur JavaScript qui, entre autres choses, vous permettra de partager le même code JavaScript sur le client et le serveur. Très bien si vous souhaitez valider sur le client, mais ne souhaitez pas écrire vos règles de validation deux fois!

Voir:

  • Combien de personnes désactivent Javascript? (Environ 1%);
  • Comment détecter si JavaScript est désactivé? ; et
  • Détectez quand JavaScript est désactivé dans ASP.NET .

En ce qui concerne la validation, vous devez toujours effectuer une validation sur serveur et ne jamais compter sur la validation du client. Vous demandez simplement d'être piraté autrement.

Si vous faites une expérience utilisateur riche et que vous n'avez pas le temps de faire deux (ou plus) versions de votre site Web pour répondre à un si petit pourcentage, je pense que nous avons atteint le moment où cela est habituellement acceptable.

Cela dépend cependant des circonstances. Certains sites peuvent cibler des utilisations qui désactivent de manière disproportionnée Javascript et ainsi de suite.

Vous manquez d'un couple de scénarios de navigateur:

  • Beaucoup plus de gens utilisent NoScript et des systèmes similaires, où javascript est initialement désactivé. Ce n'est peut-être pas un problème pour vous, car la plupart de ces personnes vont l'activer lorsqu'ils en ont besoin.
  • Googlebot ne connaît pas javascript. Vous devez vous assurer que le contenu est bon, sans javascript pour Google pour l'indexer correctement.

Ces jours-ci, les seules personnes qui n'utilisent pas JS sont généralement:

  • Malvoyants et utilisent des lecteurs d'écran (tous les effets de JS sont généralement perdus)
  • Attention à la sécurité (ou paranoïaque?) Et naviguez avec NoScript désactivé
  • Utilisateurs mobiles avec navigateurs limités

Dans ASP.NET ou tout site HTML, utilisez:

<script type="text/javascript"> window.location="/hasJs.aspx"; </script> 

Ceux-ci les redirigera vers une page pour les utilisateurs JavaScript, qui peut définir un cookie ou quelque chose que vous pouvez vérifier dans votre page principale. Comme si (ou similaire):

(Dans hasJs.aspx):

 protected void Page_Load(object sender, object e) { Response.Cookies.Add(new HttpCookie("hasJs", "yes")); Response.Redirect("/Default.aspx"); } 

(Site.master):

 <% if ( ! Request.Cookies.Contains("hasJs") ) { %> <script type="text/javascript"> window.location="/hasJs.aspx"; </script> This site requires JavaScript. <% } %> 

C'est possible, bien sûr, et si le client (si vous en avez un) accepte que ce soit bien. Mais il faut encore faire une validation sur le côté du serveur … autrement, un script kid (même si cela sera utilisé dans un corp.) Cassera votre script et peut-être même faire des choses que vous ne vouliez pas.

http://www.w3schools.com/browsers/browsers_stats.asp

Vous verriez avec JS pour vérifier si JS est activé;)

Ne considérez pas cela comme une critique de vos projets. Le choix d'avoir besoin de Javascript est certainement le vôtre à faire – bien que d'autres aient mentionné, vous devrez peut-être être préoccupé par les problèmes d'accessibilité. Vous pourriez trouver plus facile, cependant, de développer un site Web qui n'est pas compatible avec Javascript en utilisant ASP.NET MVC plutôt que WebForms.

Les nouvelles extensions AjaxHelper rendent presque trivial d'inclure un code qui s'appuie sur AJAX pour la plupart des gens, mais fonctionne en l'absence de Javascript dans le client. De toute évidence, l'expérience est dégradée pour les personnes qui ne l'ont pas, d'autant plus, si vous utilisez des plugins jQuery pour les onglets / menus, les fenêtres contextuelles, etc., mais il est toujours utilisable. Le cadre fournit un mécanisme assez simple du côté du serveur pour déterminer si la demande est une requête AJAX ou pas pour que vous puissiez répondre de manière appropriée en rendant une nouvelle vue ou en envoyant JSON / HTML / XML, le cas échéant.

Je sais que j'ai trouvé beaucoup plus facile d'écrire des sites Web accessibles utilisant MVC que je l'ai fait avec WebForms.