2012-09-19 6 views
5

Ich versuche mit HTML5 lokalen Speicher in ASP zu arbeiten. Ich kann lesen und in den Speicher schreiben, aber wenn ich eine response.redirect mache, wird der gesamte lokale Speicher ausgelöscht?Response.redirect tötet lokalen Speicher?

Dies funktioniert gut zum Speichern und ich kann die Variable im lokalen Speicher mit Developer Tools gespeichert sehen.

jedoch nach, dass, wenn ich hinzufügen

response.redirect ("index.asp") 

dann die gesamten lokalen Speicher gereinigt werden. Wie kann ich zum Fortbestehen führen?

+0

Also sagen Sie, dass Sie auf eine Seite auf der gleichen Domain umleiten und die Daten verschwunden ist? – Neil

+0

Irgendwie komisch ... sollte localStorage auch nach dem Verlassen der Site oder dem Schließen des Browsers erhalten bleiben. Vielleicht leiten Sie auf eine Seite um, auf der localStoreage bereinigt wird? – Bardo

+0

Das ist richtig - es verschwindet einfach auf der nächsten Seite. Zum Beispiel, wenn alles, was ich habe, eine ASP-Seite mit dem obigen Code ohne die letzte Zeile (response.redirect) ist, funktioniert alles und ich kann den lokalen Speicher lesen und es ist immer noch da. Wenn ich jedoch die letzte Zeile hinzufüge und versuche, den lokalen Speicher auf der nächsten Seite zu lesen, ist dieser leer. Auch wenn index.asp eine leere Seite ist, die nur lokalen Speicher liest, wird es leer angezeigt. Auch der lokale Speicher wird nicht bereinigt. Ich habe versucht, Localstorage zu Cookies zu ändern und alles funktioniert gut, aber nicht mit Localstorage. Ich kann es nicht verstehen ... – user1480192

Antwort

3

Das Problem ist (wie Neil vorschlägt), dass localStorage einige Millisekunden benötigt, um ausgeführt zu werden, und dass Sie umleiten, bevor der Prozess abgeschlossen ist. Ich hatte ein ähnliches Problem mit einer Javascript-Umleitung, nachdem ich etwas in localStorage eingestellt hatte. Sie verwenden ASP so (und ich kann nicht sicher sagen, ohne mehr Code zu sehen), aber wenn ich mich richtig erinnere, wird ASP auf dem Server geparst, so dass Sie umleiten, bevor javascript ausgeführt wird.

Versuchen Sie es mit dieser statt:

<script type='text/javascript'> 

localStorage["email"] = "<%=email%>"; 

localStorage["remember"] = "1"; 

setTimeout(function(){ 
    location.href = "index.asp"; 
},100) 

+0

Genau dieses Problem. Unglaublich. Warum führt sogar JS die Zuweisung zu localStorage asynchron aus? – arrowd