2009-08-10 11 views
2

ASP .NET
erlaubt die Werte in versteckten Eingabefeldern speichern ist
Abfrage-Zeichenfolge darf nicht erlaubt
POST-Anfrage nicht erlaubtPersist Javascript Variablen zwischen GET-Anfragen?

Es ist möglich, JS Variablen zwischen GET-Anfragen zu speichern?
Ich möchte sie auf dem Client reinitialisieren mit ClientScript.RegisterStartupScript

Kann ich Cookies für diese verwenden?
Gibt es andere Möglichkeiten?
Wo werden Cookies gespeichert, wenn eine Anfrage gestellt wird?

Antwort

3

Kann ich Cookies dafür verwenden?

Ja finden diese tutorial on using cookies in Javascript.

Gibt es andere Möglichkeiten?

Wenn Sie nicht die URL Ihrer Anfragen anhängen dürfen, kann ich keine finden.

Wo werden Cookies gespeichert, wenn eine Anfrage gestellt wird?

Im HTTP-Anfrage-Header. Das oben erwähnte Tutorial wird Ihnen zeigen, wie Sie ihre Werte aus Javascript lesen können. Auf der Server-Seite mit ASP.Net können Sie Cookie-Werte mit Request.Cookie["cookieName"] lesen, die eine Instanz von HttpCookie zurückgibt.

0

Im Moment ist die Verwendung von Cookies die beste Wahl. Sie können die JavaScript-Objekte in Strings serialisieren und sie später wieder in Objekte deserialisieren. Ein gutes Wahlformat ist JSON, da es sich um eine Teilmenge von JavaScript handelt.

Es werden auch Objekte in Flash gespeichert. Speichern in Google Gears. DomStorage

Sehen Sie diese Bibliothek, die eine Schnittstelle zu jeder hat: http://pablotron.org/?cid=1557

Wenn Sie die Kontrolle über alle Aspekte der Seite sind, dann können Sie auch die Seite in einem Top-Level-Rahmen wickeln. Aktualisieren Sie dann nur den untergeordneten Frame. Sie können dann Inhalte im übergeordneten Frame speichern.

Sie können dies in Websites wie GMail und anderen verwendet sehen, wo das einzige, was sich in der URL ändert außerhalb der #.

Sie müssen nicht einmal die URL ändern, dieser Teil wird nur für Human Friendly URLs eingefügt. (So ​​können Sie URLs tatsächlich kopieren und einfügen).

+0

Ich habe Ihre Idee in der Vergangenheit versucht, mit Framesets und IFrames. Aber meine Website wird flackern, alle Iframes flimmern ihren Inhalt und dies führt zu einer schlechten Benutzererfahrung. –

+0

das muss schon eine Weile her sein. Ich glaube, dass das Flackern Problem in den meisten heute verwendeten Browsern behoben ist. Google Mail flickr nicht, und es verwendet Framesets, um die Quelle anzuzeigen. Es gibt auch Workarounds für das Flackern, aber ich kann mich nicht mehr genau erinnern, was sie vor einem oder zwei Jahren waren. – bucabay

3

würde ich nicht hoch empfehle dies, aber die andere Option ist die window.name Eigenschaft zu ändern.

Sie können speichern Sie einige kleinere Daten hier, dann holen Sie sie auf der nächsten Seite laden.

Pro:

  • Schnell-n-schmutzig, aber funktioniert

Nachteile:

  • vermasselt alle Fenster Referenzen für Pop-ups/Kind iFrames
  • Da es ein "Hack", Browser-Verkauf ist oder können dieses "Feature" in der Zukunft

brechen Natürlich, wenn Sie alle alten Browser ausschließen können, dann verwenden Sie Global/Client Session Storage!

0

Wenn die Objekte, die Sie speichern, groß sind, oder wenn Sie sie genau wiederherstellen möchten (was JSON sicherlich nicht tut), verwenden Sie http://rhaboo.org. Die meisten Bibliotheken serialisieren große Objekte und Arrays zu einem einzigen LocalStorage-Eintrag, aber das bedeutet, dass man das Ganze bei jeder kleinen Änderung entschlüsseln und neu codieren muss, was die Leistung für treue Benutzer allmählich verschlechtert. Rhaboo verwendet einen separaten LS-Eintrag für jeden Terminal-Wert im Objekt und passt sie dann einzeln an oder an, damit Sie diese Leistung nicht erreichen.

BTW, ich schrieb rhaboo.