Question

J'ai toujours vu beaucoup de champs cachés utilisés dans les applications Web. Je travaille avec le code qui est écrit à utiliser beaucoup de champs cachés et les valeurs de données des champs visibles envoyés en arrière pour eux. Bien que je ne comprends pas pourquoi les champs cachés sont utilisés. Je pense presque toujours des façons de résoudre le même problème sans l'utilisation de champs cachés. Comment les champs cachés de l'aide dans la conception?

Quelqu'un peut-il me dire quel est exactement l'avantage que les champs cachés fournissent? Pourquoi les champs cachés utilisés?

Était-ce utile?

La solution

champs cachés est juste la façon la plus facile, qui est la raison pour laquelle ils sont utilisés un peu.

Alternatives:

  • stocker des données dans un côté serveur de session (avec témoin sessionid)
  • stocker des données dans une transaction côté serveur (avec numéro de transaction en tant que champ caché simple)
  • en utilisant le chemin d'URL au lieu des paramètres de requête de champ masqué le cas échéant

Principales préoccupations:

  • la valeur du champ caché ne peut faire confiance pour ne pas être altéré d'une page à (au lieu de stockage du côté serveur)
  • grands besoins de données à envoyer chaque fois, pourrait être un problème, et il est impossible pour certaines données (par exemple des images mises en ligne)

Principaux avantages:

  • aucune session collante qui déversement entre les pages et plusieurs fenêtres de navigateur
  • pas de nettoyage côté serveur nécessaire (pour les données expiré)
  • accessible aux scripts côté client

Autres conseils

Supposons que vous souhaitez modifier un objet. Maintenant, il est utile de mettre l'ID dans un champ caché. Bien sûr, vous devez jamais compter sur cette valeur (à savoir faire que l'utilisateur dispose des droits appropriés sur insert / update).

Pourtant, c'est une solution très pratique. Afficher l'ID dans un champ visible (par exemple zone de texte en lecture seule) est possible, mais irritant pour l'utilisateur.

Stockage de l'ID dans une session / cookie est prohibitif, car il interdit plusieurs fenêtres d'édition ouvertes en même temps et impose des restrictions à vie (conduit de délai de session à une opération d'édition cassé, très ennuyeux).

En utilisant l'URL est possible, mais les règles de conception des pauses, à savoir l'utilisation POST lors de la modification des données. De plus, comme il est visible à l'utilisateur crée plus laid URL.

La plupart utilisation typique que je vois / utilisation est pour les ID et d'autres choses qui ne ont pas vraiment besoin d'être sur la page pour toute autre raison que son besoin à un moment donné à envoyer au serveur.

-edit, aurait dû inclure plus de détails -

dites par exemple, vous avez un objet que vous souhaitez mettre à jour - l'interface utilisateur renvoie une collection de valeurs et le serveur à ce moment-là peut ou ne peut pas savoir « hey c'est un objet client » si vous tirez hors une demande de le serveur et dire « hey, donnez-moi ID 7 » et maintenant que vous avez votre objet client comme le système le sait. Les mises à jour sont appliquées, validées, et maintenant tout votre interface utilisateur obtient le résultat complet.

Je suppose une bonne excuse / argument LINQ. Essayez de mettre à jour un objet dans LINQ sans l'obtenir de la DB première. Il n'a aucune idée réelle que c'est quelque chose qu'il peut garder une trace de jusqu'à ce que vous obtenez l'objet complet.

Heres une raison quelconque, la manière commode de faire passer des données entre le code client (javascript) et côté serveur.

Il y a beaucoup de scénarios utiles.

L'un est de « stocker » des données sur une page qui ne doivent pas être saisies par un utilisateur. Par exemple, stocker l'ID utilisateur lors de générer une page, cette valeur sera soumis automatiquement avec le dos de formulaire au serveur.

Un autre scénario est la sécurité. Ajoutez un peu cachés jeton à la page et vérifiez son existence sur le serveur. Cela permettra de déterminer si un formulaire a été envoyé via le navigateur ou par un bot qui vient d'afficher une certaine URL sur votre site.

Il garde les choses de l'URL (comme dans le querystring) il maintient que propre. Il conserve également les choses de session qui ne sont pas nécessairement besoin d'être là-dedans.

En dehors de cela, je ne peux pas penser à un trop grand nombre d'autres avantages.

Ils sont généralement utilisés pour stocker l'état comme un progrès d'interaction. Les cookies peuvent être utilisés à la place, mais certaines personnes les désactiver. Pourrait aussi utiliser un seul champ caché à un point à l'état côté serveur, mais il y a des problèmes de session-adhésivité.

Si vous utilisez champ caché sous la forme, vous augmentez la charge de forme en incluant un nouveau contrôle.

S'il n'y a pas besoin de prendre champ caché, vous prenez should't parce qu'il ne convient pas sur les bases du point de sécurité. utilisant un champ caché ne relève pas de la bonne programmation. Parce qu'il affecte également les performances de l'application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top