2012-09-19 15 views
5

私はHTML5ローカルストレージaspで作業しようとしています。私はストレージに読み書きすることができますが、私がresponse.redirectを実行すると、ローカルストレージ全体が一掃されますか?Response.redirectはローカルストレージを強制終了しますか?

<script type='text/javascript'> 

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

localStorage["remember"] = "1"; 
</script> 

保存には問題ありません。これは、デベロッパーツールを使用してローカルストレージに保存された変数を確認できます。しかし

その後私は、全体のローカルストレージを洗浄する

response.redirect ("index.asp") 

を追加した場合。どのようにして持続させることができますか?

+0

をだからあなたはあなたが同じドメイン上のページにリダイレクトし、データがdissapearedたことを言っていますか? – Neil

+0

ちょっと変だけど... suposedly localStorageは、サイトやブラウザを終了しても残っているはずです。 localStoreageがクリーニングされているページにリダイレクトされている可能性がありますか? – Bardo

+0

それは正しい - それは単に次のページで消えます。例えば、私が持っているすべてのコードが最後の行(response.redirect)なしで上記のコードを持つaspページなら、すべて動作し、私はlocalstorageを読むことができ、それはまだそこにあります。しかし、最後の行を追加して次のページでlocalstorageを読み込もうとすると、それは空です。 index.aspがローカルストレージを読み取るだけの空のページであっても、空のページになります。また、ローカルストレージがクリーニングされていません。私は、localstorageをクッキーに変更しようとしましたが、すべて正常に動作しますが、localstorageではありません。私はそれを理解することはできません... – user1480192

答えて

3

localstorageが実行に数ミリ秒かかり、プロセスが完了する前にリダイレクトしているという問題があります(Neilが示唆しているように)。私は、localStorageで何かを設定した後、javascriptのリダイレクトに同様の問題がありました。 あなたはASPを使用しているので、コードの多くを見ることなく確実に言うことはできませんが、正しくASPがサーバー上で解析されているので、の前にリダイレクトしています。 javascriptが実行されます。

これは代わりに使用してみてください:

<script type='text/javascript'> 

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

localStorage["remember"] = "1"; 

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

+0

正確にこの問題があります。不信者。なぜJSもlocalStorageへの代入を非同期で実行するのですか? – arrowd

関連する問題