Validieren Sie Ihre Daten

Durch menschliches Versagen, menschliches Unverständnis oder einfache Ignoranz, Menschen manchmal Eingabe der fehlerhaften Zustand. Jede Bewerbung muss Daten anzuwenden, Validierung, damit Sie wissen können, wenn die Daten einer gültigen Zustand. Validation Problem ist nicht nur ein Problem der Dateneingabe kann es auch ein Programmierer sein Problem. Zum Beispiel könnte ein Mensch die Daten korrekt eingeben, aber der Code könnte einige ungültige Behandlungen vornimmt, die staatliche Korruption durchzuführen. Sie müssen sicherstellen, dass die Validierung erfolgreich auftritt. Theory Validierung in einer Ajax-Anwendung bedeutet, dass der Client-oder Server die Daten validiert werden können. Die Validierung zu überprüfen, ob eine gültige Nummer eingegeben wurde kann entweder auf der Client-Seite oder der Server-Seite durchgeführt werden, . Imagining die Validierung auf dem Client ausgeführt, können Sie definieren die folgenden Punkte:

• Sie verwenden JavaScript, um die Validierung durchzuführen.

• Der Kunde kann handeln und zu validieren, bevor Sie die Daten an den Server und spart so eine Rundfahrt auf dem Server.

• Der Web-Client ist als unsicher, so könnte der Server ungültige Daten empfangen, wenn clientside Validierung ist die einzige Validierung. Clientseitige Validierung spart Rechenleistung auf Seiten des Servers, indem Sie die Validierung und Nutzung der Ressourcen des Kunden. Der Nachteil ist, dass in einer HTML-Anwendung, der Client als unsicher und Hacker können immer umgehen, die Sicherheit Bemühungen AWeb Entwickler. Sie können die Probleme zu minimieren, aber man kann nicht die Probleme zu beseitigen. Im Gegensatz dazu wollen wir auf Server-Look-Validierung , wo Sie können die folgenden Punkte:

  

• Sie können die Umsetzung aller Validierung in der Sprache der Wahl, ob das Java, C #, C + +, PHP oder Ruby.

• Server-seitige Validierung erfordert eine Hin-und Rückfahrt zwischen dem Client und dem Server, welche Netzwerk-Ressourcen verschwendet.

In dem Beispiel Quelle, die ein HTML-Tag img src-Attribut, sondern auch ein Ziel und ein onload-Attribut. Von einem System-Level-Perspektive bedeutet dies, gibt es drei Attribute. Das Problem mit dem Server-Filter ist, dass es das Ziel und onload Attribute behandelt, als ein Attribut. Dies ist wahrscheinlich dadurch verursacht, dass ein Application-Level-Validierung Filter erstellt wurde, nicht überprüfen Sie die Daten auf der System-Ebene. Hätte die Validierungsroutinen durchgeführt sowohl ein System-Level-Validierung und ein Application-Level-Validierung, der Fehler höchstwahrscheinlich erwischt worden. Staat und Validierung sind nicht einfach ein Problem. Staats-und Validierung es sich sowohl um ein Client-und Server-Seite ein und umfassen sowohl auf System-Ebene die Validierung und Application-Level-Validierung. In der vorgeschlagenen Validierung der Architektur, bleibt ein Problem: Der Kunde ist als unsicher, aber der Server erwartet, dass der Client Senden Sie die richtigen Daten. Dies könnte ein Artikel in die Katastrophe, aber nicht, weil, wie die Anwendung Validierung durchgeführt wird. Bei den meisten technischen Umsetzung, Anwendung bedeutet Validierung System-Level-Validierung. Der Kunde legt die Daten, so dass Fehler bereits entfernt sind. Die Server-Seite setzt voraus, dass die Daten korrekt sind, aber immer noch die Möglichkeit, Fehler aufzufangen, falls sie auftreten. Lösung zu starten, lassen Sie einen Blick auf die HTML-Seite verwendet, um zwei Zahlen addieren.

 Quelle: / website / ROOT / Ajax / DHTML / Validierung / test.html  Validation Beispiel 
Anzahl 1
Anzahl 2
Ergebnis

 Quelle: / website / ROOT / Ajax / DHTML / Validierung / test.html  Validation Beispiel  
Anzahl 1
Anzahl 2
Ergebnis

• Beim Extrahieren der Staat für die Zahlen, müssen Sie auf das Textfeld Wert Eigenschaften für Zahl1 und Zahl2.

• Beim Extrahieren der Staat für das Ergebnis, müssen Sie auf die Spanne Eigenschaft innerHTML.

• Sie müssen das Textfeld Werte validieren Zahl1 und Zahl2 als Zahlen.

• Wenn die Überprüfung fehlschlägt, müssen Sie zu generieren und zeigt eine Fehlermeldung, so dass Benutzer können Abhilfemaßnahmen zu treffen.

• Sie müssen nicht angezeigt werden Fehler auf ein Problem regelten. Die Validierung Routinen müssen über den ganzen Staat zu gehen und für alles zu erzeugen Fehler gefunden.

• Wenn keine weiteren Validierung Fehler auftreten, gehen die generierten Zustand an den Aufrufer. Beachten Sie, dass mehrere staatliche Instanzen auftreten könnten. Sie sollten die Entstehung von mehreren Fehlern oder mehreren staatlichen Stellen vorbehalten. Wenn ein Algorithmus mit mehreren Ergebnissen konfrontiert wird, sind die Ergebnisse vorübergehend in ein Array, das von der Aufrufer der Algorithmus verarbeitet, gespeichert ist. Wie in Artikel 2 des Code-Block lesen, könnten Sie auch Code-Blöcke. Code-Blöcke wäre die richtige Wahl, denn es kann oder auch nicht sein Fehler, und es kann sein oder auch nicht ein Staat Instanz. Um die Komplexität zu illustrieren, betrachten Sie den folgenden Code, der jeden Ansatz der Aufruf der Funktion GetState illustriert:

Funktion GenerateState () (var noErrors = true; var result = GetState ( "Identifier"); for (int c1 = 0; c1 <result.errors.length; c1 + +) (/ / Do something with error noErrors = false; ) if (noErrors == true) (for (int c1 = 0; c1 <results.state.length; c1 + +) (/ / Mach was mit den Ergebnissen)))

Die erste Zeile ist eine Zuordnung der Variablen noErrors. Die Variable noErrors wird verwendet, um anzugeben, ob Fehler auftreten, wenn das Extrahieren des Staates. Wenn es Fehler gibt, dann die Verarbeitung der Staat wäre dumm, da es keine staatlichen oder wenn es gibt, ist es unvollständig. GetState Aufruf der Funktion gibt ein Objekt Instanz, die zwei Daten-Mitglieder: Fehler und Staat. Die beiden Daten-Mitglieder sind Arrays, die die Fehler enthalten und schließlich die staatlichen Instanzen. Nach dem Aufruf von GetState durchläuft eine Schleife der Validierung Fehler und, falls erforderlich, generiert eine Antwort. Wenn ein Fehler erzeugt wird, ist die Variable noErrors ein Wert zugewiesen, der falsch ist, auf einen Fehler hin. Wenn es keine Fehler, die generierten staatlichen Instanzen durchlaufen. Als GetState kodiert ist, wird die Funktion aufgerufen und Prozesse des Staates. Wenn ein Fehler auftritt, dann der Aufrufer GetState Bedürfnisse zu sezieren, was schief gelaufen ist und wie man die Fehler des Anrufers angezeigt. Eine andere Lösung besteht darin, Code-Blöcke verwenden, wie der Staat oder fehlerhaft verarbeitet werden, zu vereinfachen. Code-Blöcke den Code vereinfachen, weil Sie damit auf die Wertschöpfung in Bezug auf Code konzentrieren können. Der folgende Code veranschaulicht, wie eine Version von GetState Code-Blöcke verwendet:

Funktion GenerateState () (GetState ( "Identifier", (error: function (errorItem) (/ / Do something with error) Zustand: function (stateInstance) (/ / Mach was mit den Ergebnissen)));)

In der modifizierten Umsetzung der GenerateState, ist die Funktion übergeben GetState ein Objekt Instanz, die zwei Methoden: Fehler und Staat. Wenn ein Fehler auftritt, wird die Funktion Fehler aufgerufen. Wenn keine Fehler auftreten, wird die Funktion Zustand nennt man ". Der Aufrufer GenerateState hat eine vereinfachte Umsetzung, denn es muss nur Sorge für die Fälle treffen, wenn ein Fehler oder eine staatliche Instanz auftreten. Wenn der Anrufer nicht eine Implementierung für die Funktion Fehler geben, dann alle Fehler, die entstehen würden, werden ignoriert, und der Anrufer wartet nur auf einen gültigen staatlichen Instanz. Die Einzelheiten der SetState und wie Sie es sind ähnlich GetState. Der Unterschied zu SetState ist, dass ein Staat, eine Darstellung zugeordnet werden. Lassen Sie uns nun auf die Details der Implementierung des HTML-Formular noch einmal, wie eine weitere Änderung noch nicht diskutiert worden, und es muss vor der Erörterung der Einzelheiten der GetState abgedeckt werden oder SetState:

Anzahl 1
Anzahl 2
Ergebnis

Die fett gedruckten Text zeigt die Zugabe von HTML-span-Elemente, mit denen Sie Fehler mit den Daten verknüpft Display zu benutzen. In den vergangenen Anwendungen könnten Sie ein Dialogfeld verwendet haben, um auf Fehler hinweisen. Das Problem mit Dialog-Boxen ist, dass sie über die problematische Daten sprechen aber nicht lokalisieren. Mit einer ziemlich komplizierten Form, könnten Nutzer überlassen werden fragen, wo der Fehler. Dynamic HTML (DHTML) ist, gibt Ihnen die Möglichkeit, die HTML-Elemente zu ändern, wodurch die Notwendigkeit, ein Dialogfeld unnötigen Einsatz. Dieser Artikel basiert auf einer HTML-span-Element, das enthält den Fehler. Sie können, was Sie in Ihren Anwendungen zu wollen. Vielleicht möchten Sie blinkenden Text, oder vielleicht wollen Sie Schriftarten geändert, es ist Ihre Wahl zu benutzen. Es ist wichtig, aber, dass Sie den Fehler assoziieren mit den lokalen HTML-Element. Lassen Sie uns jetzt decken die Einzelheiten der GetState, was ein wenig langwierig sein kann:

Funktion GetState (Kennung, cb) ( if (identifier == "toadd") (/ / 1var form = document.getElementById ( "Rechner"); document.getElementById ( "Number1Error"). innerHTML = ""; / / 2document.getElementById ( "Number2Error"). innerHTML = ""; var obj = new Object (); / / 3 var didError = false; / / 4try ( obj.Number1 = Converter.convertToInteger (form.Number1.value); / / 5) Catch (e) (didError = true; document.getElementById ( "Number1Error"). InnerHTML = e.toString (); if (cb.error) ( cb.error ((section: "toadd" Artikel: "Zahl1", error: e.toString ()}); / / 6Try ()) obj.Number2 = Converter.convertToInteger (form.Number2.value);) catch (e) (didError = true; document.getElementById ( "Number2Error"). InnerHTML = e.toString (); if (cb. error) (cb.error ((section: "toadd", Punkt: "Zahl2", error: e.toString ()});)) if (cb.state & &! didError) ( cb.state ((section: "toadd", value: obj)); / / 7)) Else if (identifier == "result") (var element = Navigation.findChild ( "Taschenrechner", "result"); Navigation.findChild ( "Taschenrechner", "resulterror"). InnerHTML = ""; var obj = new Object (); try (obj.Result = Converter.convertToInteger (element.innerHTML);) catch (e) (Navigation.findChild ( "Taschenrechner", "resulterror"). innerHTML = e.toString (); if (cb . error) (cb.error ((section: "Result", Artikel: "Ergebnis", error: e.toString ()});) return;) if (cb.state) (cb.state ((section: " Ergebnis ", Wert: obj));)) else (if (cb.error) (cb.error ((section: Bezeichner, Fehler:" State-Kennung ( "Identifier + +" ist nicht vorhanden "));)))

Der Code ist nicht kompliziert, aber langwierig, weil die Aufgabe, die Sie zu erledigen, ist lang. Die folgende Liste erläutert jede der kühnen Zeilen Code. Die Zahlen in der Liste entsprechen den Nummern in den Kommentaren in den markierten Code angezeigt:

1. GetState eine Entscheidung trifft, um festzustellen, welche Darstellung in einem Zustand umgewandelt werden sollten.

2. GetState setzt die Fehlermeldungen mit der Darstellung verbunden. In diesem Artikel bedeutet, dass die Zuordnung der Eigenschaft innerHTML der einzelnen HTML-span-Elemente in einen leeren Puffer. In Ihrer Anwendung könnte bedeuten, dass das Zurücksetzen des blinkenden Text oder das Ändern der Schriftart. Es ist wichtig, um den Fehler Zustand zurückgesetzt, so dass keine alten Fehler werden als Bestätigung angezeigt ausgeführt wird.

3. GetState instanziiert ein Objekt mit dem Objekttyp. Die Ausprägung und die Nutzung des Object-Typ hat einen Zweck. Sie könnten versucht sein, einen Typ, der vordefinierte Daten-Member und Methoden hat instanziieren, aber das ist nicht zu empfehlen ist. Stellen Sie mit DHTML und erzeugen eine Form dynamisch. Es könnte sein, dass ein Zusammenhang mit den generierten Daten bilden ein Mitglied hat, und einem anderen Kontext nicht. Aus einem Zustand Perspektive, wollen Sie an den Staat, dass der Kontext, nicht was Sie denken Zusammenhang sollte spiegelt wissen. So, wenn Sie eine Instanz eines Objekts, dass keine Daten Mitglieder hat, und ordnen Sie die Daten dynamisch Mitglieder, sind Sie sicher, dass nur, dass die Daten mit dem Kontext verbunden vorhanden ist.

4. Die Variable didError ist ein Flag, das angibt, ob ein Fehler bei der Validierung aufgetreten. Dieses Flag wird hier hervorgehoben, um Querverweis der bisherigen Diskussion über den Grund der Verwendung von Rückrufen und nicht-Loops. Die Darstellung der didError zeigt, dass die GetState Algorithmus benötigt um nachzuverfolgen, ob ein Fehler aufgetreten ist.

5. Converter konvertiert die HTML-Daten in die gewünschte Art, die im Falle des Beispiels einen Integer-Wert. Die Umwandlung ist eine Funktion aufrufen, die mit der Anwendung unterschiedlich geschrieben. Der Umbau beinhaltet einen Validierung. Beachten Sie, dass die Umwandlung in eine Ausnahme-Block gekapselt ist. Die Verwendung einer Ausnahme-Block wird bevorzugt, da alle Fehler abgefangen werden. Die Validierung Routinen könnten einige Fehler übersehen, sondern die Ausnahme-Block kann Erfassung und Darstellung dieser Fehler.

6. Wenn eine Ausnahme erzeugt wird, fängt der catch-Block die Ausnahme. Sobald die Ausnahme gefangen hat, die benutzerdefinierte Fehlermeldung Callback aufgerufen wird, und kann der Fehler-Prozess weiter.

7. Wenn keine Fehler generiert werden, die benutzerdefinierte Callback ist mit dem Zustand des Formulars aufgerufen. Der Code, der nicht fett ist entweder eine Replikation der Funktionalität oder Support-Code für eine der sieben Details. Denken Sie daran, dass die GetState und SetState Funktionen getrennt sind. Zum Beispiel, wenn eine Überprüfung fehlschlägt und eine Fehlermeldung generiert wird, haben Sie die Möglichkeit, dass die Callback-Display die Meldung. Allerdings ist dieser Ansatz nicht wünschenswert, weil der Staat Code haben werde, um die Darstellung Details wissen. Gemäß der Vertretung Morphing-Muster ist es nicht wünschenswert, dass der Anrufer der GetState oder SetState wissen, wie die Vorstellungen umgesetzt werden können. Dies fördert eine Entkopplung, wie die GetState und SetState Funktionen kennen nicht die Herkunft der Daten verwendet, um einen Zustand, in einer Darstellung zuordnen. Zur Veranschaulichung der folgende Code zeigt die komplette SetState Funktionalität und Querverweise die Details, die Umsetzung die gleiche Funktionalität wie die sieben definierten Einzelheiten der GetState Funktion:

Funktion SetState (Kennung, obj, cb) ( if (identifier == "toadd") (/ / 1var form = document.getElementById ( "Rechner"); document.getElementById ( "Number1Error"). innerHTML = ""; / / 2document.getElementById ( "Number2Error"). innerHTML = ""; if (typeof (obj.Number1)! = "number") (/ / 5var buffer = "obj.Number1 erwartet eine Zahl, aber ist ein" + typeof (obj.Number1); document.getElementById ( "Number1Error"). innerHTML = buffer; if (typeof (cb)! = "undefined" & & cb. error) ( cb.error ((section: "toadd", Kennung: "Zahl1", Fehler: Buffer)); / / 6)))) = Element.innerHTML obj.Result;) else (if (typeof (cb)! = "Undefined" & & cb.error) (cb.error ((section: Bezeichner, Fehler: "State-Kennung (" + Kennung + "existiert nicht"));))

Bei der Zuordnung der Darstellung mit einem Staat, ist die gleiche Art von Logik durchgeführt, mit Ausnahme der Linien 3 und 7 aus dem vorhergehenden Codebeispiel. Diese Zahlen sind nicht hier verwiesen wird, denn wenn ein Staat zuweisen, sind Sie übergeben das Objekt beispielsweise, dass der Staat enthält. Die serverseitige Validierung wird nicht angezeigt, weil dieser Artikel konzentriert sich auf die Client-Lösungen. Zu der Lösung abgeschlossen, können Sie würde eine Ajax-Anfrage und senden oder zu empfangen den Staat Die serverseitige Validierung wird nicht angezeigt, weil dieser Artikel konzentriert sich auf die Client-Lösungen. Darstellung veranschaulicht den Zustand, in ein Nur-Lese-Modus. Mit diesem Artikel, können Sie den Zustand der Ferne abzurufen, zeigen Sie sie im Nur-Lese-Modus, bearbeiten, und dann schicken Sie es zurück an den Server. Putting dies alles zusammen, müssen Sie die folgenden Dinge zu erinnern, Validierung:

• Validierung geht es nicht um einige Daten zu validieren. Validierung in erster Linie geht es um die Festlegung eines Staates, der mit einer Darstellung verbunden ist. Die Feststellung ist, dass, wenn die staatlichen übertragen wird, ist der Staat in Einklang stehen.

• Bei der Durchführung der Validierung, wenn der Staat an den Server übertragen wird, dann ist es sehr wahrscheinlich, kann der Kunde sich nicht darauf verlassen. Der Client ist als unsicher, und deshalb die Sie erwarten sollten, ist auf System-Ebene Bestätigung, dass die "dumme" Fehler beseitigt. Dies ist nicht zu sagen, dass Sie keine Anwendungs-Ebene ausführen können Validierung stelle nicht nur blindes Vertrauen in die Validierung, wenn die Anwendung erfordert eine hohe Sicherheit.

• Wenn der Kunde erhält einen Staat von dem Server, braucht er nicht validiert werden, da der Server als sicher ist. Bildlich gesprochen, ist es wie ein Besuch in einer Bank: die Bankangestellten nicht trauen und daher der Auffassung, Sie, das Individuum, unsicher. Die inverse ist nicht wahr, wie Sie der Erzähler nicht trauen und wird nicht in Frage, was der Erzähler sagt oder die Verwendung der Gelder, die Sie erhalten.

• Wenn Fehler Validierung, verwenden Sie DHTML, um einen Fehler in der Nähe der Ortschaft angezeigt werden, wo sie sich ereignen. Zum Beispiel haben nicht zu einem Dialogfeld, denn das kann zu kryptischen Fehlermeldungen führen.

• Bei der Durchführung der Validierung nutzen, verwenden Sie an und setzt Staat Funktionalität, so dass der Staat, Repräsentation und Mechanismen zur Übertragung Staat voneinander entkoppelt werden.

• Verwenden Sie Code-Blöcke, so dass Benutzer Funktionen aufgerufen wird, wenn nötig, eine Entkopplung der Code.

Ein Artikel eingereicht von Sonja Lande


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Überprüfen Sie Ihre Daten" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 425 users browsing the articles directory