Frage

Ich habe immer viele versteckte Felder in Web-Anwendungen verwendet gesehen. Ich habe mit dem Code gearbeitet, die viele versteckte Felder und die Datenwerte aus den sichtbaren Felder geschickt hin und her, um sie zu benutzen, geschrieben wird. Obwohl ich nicht verstehen, warum verwendet werden, die ausgeblendeten Felder. Ich kann fast immer überlegen, wie das gleiche Problem ohne den Einsatz von verdeckten Feldern zu lösen. Wie kann versteckte Felder Hilfe in Design?

Kann mir jemand sagen, was genau ist der Vorteil, dass versteckte Felder zur Verfügung stellen? Warum versteckte Felder verwendet?

War es hilfreich?

Lösung

Versteckte Felder ist nur der einfachste Weg, das ist, warum sie ziemlich viel verwendet werden.

Alternativen:

  • Daten in einer Sitzung serverseitige Speicherung (mit sessionid Cookie)
  • Daten in einer Transaktionsserver-Seite (mit dem Transaktions-ID, wie das einzelnen verborgenen Feld) Speicher
  • mit URL-Pfad statt versteckten Feld Abfrageparameter ggf.

Haupt betrifft:

  • der Wert des verborgenen Feldes kann nicht vertraut werden, um nicht mit von Seite zu Seite manipuliert werden (im Gegensatz zu serverseitigen Speichern)
  • große Daten Bedürfnisse jedes Mal geschrieben werden, könnte ein Problem sein, und ist nicht möglich, für einige Daten (zB Bilder hochgeladen)

Die wichtigsten Vorteile:

  • keine klebrigen Sitzungen, dass Spill zwischen den Seiten und mehrere Browser-Fenster
  • keine serverseitige Bereinigung erforderlich (für abgelaufene Daten)
  • zugänglich zu clientseitige Skripte

Andere Tipps

Angenommen, Sie ein Objekt bearbeiten möchten. Jetzt ist es hilfreich, die ID in einem versteckten Feld zu setzen. Natürlich müssen Sie verlassen nie auf diesem Wert (das heißt sicherzustellen, dass der Benutzer über die entsprechenden Rechte auf insert / update hat).

Dennoch ist dies eine sehr bequeme Lösung. Angezeigt wird die ID in einem sichtbaren Bereich (zum Beispiel Nur-Lese-Textfeld) ist möglich, aber für den Benutzer zu reizen.

Das Speichern der ID in einer Sitzung / Cookie ist untragbar, da sie mehr geöffnet bearbeiten Fenster zur gleichen Zeit und erlegt Lebensdauer Einschränkungen nicht zuzulässt (Session-Timeout führt zu einem gebrochenen Bearbeitungsvorgang, sehr ärgerlich).

die URL zu verwenden ist möglich, aber Pausen Designregeln, das heißt Verwendung POST, wenn Änderung von Daten. Auch, weil es für den Benutzer sichtbar ist es schafft hässlichen URLs.

Die typische Anwendung ich sehe / Nutzung ist für IDs und andere Dinge, die wirklich brauchen nicht aus einem anderen Grund auf der Seite zu sein, als seine irgendwann brauchte, um wieder an den Server gesendet werden sollen.

-edit, sollte genauer aufgenommen haben -

sagen zum Beispiel haben Sie einige Objekt, das Sie wollen update - das UI sendet eine Sammlung von Werten zurück und der Server an diesem Punkt kann oder weiß nicht „hey das ist ein Kundenobjekt“, so dass Sie eine Anfrage abzufeuern der Server und sagt: „hey, gib mir ID 7“ und jetzt haben Sie Ihr Kundenobjekt wie das System es kennt. Die Updates werden angewandt, validiert, was auch immer, und jetzt Ihre UI das fertige Ergebnis bekommt.

Ich denke, eine gute Ausrede / Argument verwendet Linq. Versuchen Sie, ein Objekt in Linq zu aktualisieren, ohne ihn aus der DB zu bekommen. Es hat keine Ahnung, dass es etwas es im Auge behalten kann, bis Sie das vollständige Objekt zu erhalten.

herer Ein Grund, bequeme Art von Daten zwischen Client-Code (JavaScript) und Server-Seite übergeben.

Es gibt viele nützliche Szenarien.

Eine davon ist zu „speichern“ einige Daten auf einer Seite, die nicht von einem Benutzer eingegeben werden soll. Zum Beispiel speichert die Benutzer-ID, wenn eine Seite erzeugen, dann wird dieser Wert automatisch eingereicht mit dem Formular zurück an den Server werden.

Ein weiteres Szenario ist die Sicherheit. Fügen Sie einige auf der Seite Token versteckt und überprüfen ihre Existenz auf dem Server. Dies wird helfen, festzustellen, ob ein Formular über den Browser oder durch einen Bot eingereicht wurde, die bis zu einem gewissen URL auf Ihrer Website gepostet nur.

Es hält die Dinge aus dem URL (wie im Abfragezeichenfolgeflag) so, dass sauber hält. Es hält auch Dinge aus der Session, die nicht unbedingt brauchen können, dort zu sein.

Other than that, kann ich mir nicht zu viele andere Vorteile.

Sie sind im Allgemeinen zu speichern Zustand als Interaktions Fortschritte verwendet. Cookies könnte stattdessen verwendet werden, aber manche Leute deaktivieren sie. Könnte auch ein einzelnes verstecktes Feld zu Punkt, an serverseitigen Zustand verwenden, aber dann gibt es sitzungs Klebrigkeit Fragen.

Wenn Sie in Form versteckte Feld verwenden, werden Sie die Last der Form zu erhöhen, indem eine neue Steuerung mit.

Wenn es nicht notwendig ist, versteckt Feld zu nehmen, Sie should't es nehmen, weil sie nicht geeignet auf der Grundlage von Sicherheitsaspekten sind. verstecktes Feld mit kommt nicht in der guten Programmierung. Weil es auch die Leistung der Anwendung auswirken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top