68 votes

Validation JavaScript est mauvais ?

Ça fait longtemps que nous avons été valider nos formulaires à l’aide de JavaScript. Je ne sais pas que cela doit être le cas avec la plupart des autres développeurs.

Question :

Que se passe-t-il si l’utilisateur (ou probablement un méchant) désactive JavaScript ?

Vous êtes perdu !

  • Est la valeur de validation JavaScript de celui-ci ?
  • Devrions nous jamais l’utiliser maintenant ?
  • Y a-t-il des solutions à cela ?

Corrigez-moi si je me trompe.

164voto

Darin Dimitrov Points 528142
<blockquote> <p>Est la valeur de validation JavaScript de celui-ci ?</p> </blockquote> <p>Oui, car il fournit une meilleure expérience utilisateur et préserve la bande passante.</p> <blockquote> <p>Devrions nous jamais l’utiliser maintenant ?</p> </blockquote> <p>Oui, pour les motifs susmentionnés.</p> <blockquote> <p>Y a-t-il des solutions à cela ?</p> </blockquote> <p>Oui, utiliser la validation côté serveur ainsi.</p>

28voto

winSharp93 Points 7124

Que faire si l'utilisateur (ou probablement un mauvais gars) désactive le javascript?

Comme l'a dit avant: il suffit de ne pas compter sur le client. Ne jamais le faire. Tout vérifier sur le serveur de nouveau.

Devrions-nous jamais l'utiliser maintenant?

Oui - de sorte que l'utilisateur voit immédiatement quel est le problème. Sinon, il avait de publier les données, ce qui peut prendre un certain temps. Par la façon dont vous réduire le trafic vers votre serveur.

C'est tout simplement plus inuitive.

//EDIT: BTW: Le ASP.NET ValidationRules contiennent à la fois côté client et serveur de validation pour autant que je sais.

17voto

cletus Points 276888

Validation JavaScript est bonne car il fournit une meilleure expérience utilisateur.

Vous devriez cependant jamais compter sur lui et devez valider sur le serveur sans se soucier.

10voto

Ramiz Uddin Points 2624

JavaScript améliore l'interaction de votre produit ou service. Les utilisateurs de l'interaction (la saisie de l'utilisateur et de la machine de réponse ou vice versa) est une caractéristique essentielle de nos applications. Comme nous l'avons tous connu, les produits deviennent de plus en plus interactif que jamais. Et cette interaction partie (seulement) être conçu en JavaScript,ActionScript pour Flash Player). Nous sommes tous d'accord avec cela - il y a toujours une certaine quantité de travail qui peut être transité vers le côté client (machine) pour éviter des appels sans enquiquiner à envoyer au serveur(s). Il ya beaucoup de demandes qui sont fortement tributaires de script client de script. Et si ils vous ont trouvé ne permettent pas nécessaire de script, ils ont demandé pour elle en laissant un message en noscript balise. Mais je pense que tout le monde veut l'avoir activé comme nous le feu jusqu'à un onglet avec Gmail, Facebook, etc.

Toutefois, cela ne devrait pas être ignorée, car nous sommes désireux de saisir chaque occasion qui se présente (public/client) et de travailler avec est au moins mieux que de tomber en morceaux. Il fonctionne encore!

En tant que Plateforme de Développement Microsoft utilisateur, il existe une solution pratique sur .NET plate-forme. Qui ne nécessitent pas de double effort sur ces questions. Faire usage de votre validation côté client alors que les scripts sont désactivés en utilisant Page.Validate() et Page.IsValid.

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack) {
        Page.Validate(); // If you missed, then you got the second chance ...
    }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (Page.IsValid) { // Confirm you do a proper validation before moving to perform any process
        Response.Write("Done!");
    }
}

J'espère que cela aidera.

10voto

Jess Points 8425

Si vous cherchez à gagner du temps, aller avec côté serveur uniquement. Si vous voulez améliorer les performances et l’expérience utilisateur, ajoutez la validation côté client par la suite. Ne vous fiez jamais sur la validation côté client, pour les raisons vous état. Toute la validation critique devrait se produire sur le serveur... même si reproduite sur le client.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X