2012-09-19 7 views
5

मैं एएसपी में HTML5 स्थानीय संग्रहण के साथ काम करने की कोशिश कर रहा हूं। मैं भंडारण को पढ़ और लिख सकता हूं, लेकिन अगर मैं response.redirect करता हूं तो पूरा स्थानीय भंडारण मिटा दिया जाता है?Response.redirect स्थानीय संग्रहण को मारता है?

<script type='text/javascript'> 

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

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

यह सहेजने के लिए ठीक काम करता है और मैं डेवलपर टूल्स का उपयोग कर स्थानीय संग्रहण में सहेजे गए चर को देख सकता हूं।

लेकिन अगर उस के बाद मैं

response.redirect ("index.asp") 

तो पूरे स्थानीय भंडारण साफ किया जाता है जोड़ें। मैं कैसे बने रह सकता हूं?

+0

तो तुम कह रहे हैं कि आप एक ही डोमेन पर एक पृष्ठ पर रीडायरेक्ट और डेटा गायब है? – Neil

+0

किंडा अजीब ... आश्चर्यजनक रूप से स्थानीय स्टोरेज साइट छोड़ने या ब्राउज़र बंद करने के बाद भी रहना चाहिए। शायद आप उस पृष्ठ पर रीडायरेक्ट कर रहे हैं जहां स्थानीय स्टोरेज साफ किया जा रहा है? – Bardo

+0

यह सही है - यह अगले पृष्ठ पर आसानी से गायब हो जाता है। उदाहरण के लिए यदि मेरे पास सब कुछ अंतिम लाइन (respond.redirect) के बिना उपरोक्त कोड वाला एएसपी पृष्ठ है, तो सबकुछ काम करता है और मैं स्थानीय स्टोरेज को पढ़ सकता हूं और यह अभी भी वहां है। हालांकि अगर मैं अंतिम पंक्ति जोड़ता हूं और अगले पृष्ठ पर स्थानीय स्टोरेज पढ़ने की कोशिश करता हूं, तो यह खाली है। यहां तक ​​कि अगर index.asp एक खाली पृष्ठ है जो स्थानीय संग्रहण को पढ़ता है तो यह खाली हो जाता है। स्थानीय भंडारण भी साफ नहीं किया जा रहा है। मैंने कुकीज़ में स्थानीय स्टोरेज बदलने की कोशिश की और सबकुछ ठीक काम करता है, लेकिन यह स्थानीय स्टोरेज के साथ नहीं है। मैं इसे समझ नहीं सकता ... – user1480192

उत्तर

3

समस्या है (जैसा कि नील सुझाव देता है) कि स्थानीय स्टोरेज को निष्पादित करने के लिए कुछ मिलीसेकंड लेते हैं और प्रक्रिया पूरी होने से पहले आप रीडायरेक्ट कर रहे हैं। स्थानीय स्टोरेज में कुछ सेट करने के बाद मुझे जावास्क्रिप्ट रीडायरेक्ट के साथ एक ही समस्या थी। आप एएसपी का उपयोग कर रहे हैं (और मैं कोड के अधिक देखे बिना निश्चित रूप से नहीं कह सकता) लेकिन अगर मुझे याद है कि सर्वर पर सही ढंग से एएसपी पार्स किया गया है तो आप से पहले जावास्क्रिप्ट निष्पादन से पहले रीडायरेक्ट कर रहे हैं।

इस बजाय उपयोग करके देखें:

<script type='text/javascript'> 

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

localStorage["remember"] = "1"; 

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

+0

बिल्कुल इस समस्या को मिला। Unbeliavably। जेएस भी स्थानीय स्टोरेज को असीमित रूप से असाइनमेंट निष्पादित करता है? – arrowd