2016-04-13 9 views
6

मेरे पास कुछ जावास्क्रिप्ट है जो सत्र स्टोरेज में किसी ऑब्जेक्ट की जांच करता है, और इनपुट फ़ील्ड को फिर से भरने के लिए इसका उपयोग करता है। मैं इसका उपयोग अपनी साइट पर उपयोगकर्ताओं की सहायता के लिए करता हूं यदि वे फॉर्म को अधूरा छोड़ देते हैं और या तो नेविगेट करते हैं या उनके सत्र की समाप्ति के बाद फॉर्म जमा करने का प्रयास करते हैं।सत्रस्टॉरेज वास्तव में कब साफ़ किया जाता है?

मेरे समझ के साथ कि sessionStorage एक सर्वर सत्र से जुड़ा हुआ नहीं है, यह ब्राउज़र से लिंक इतना है कि क्या मैं सर्वर पर कोई नया सत्र है या नहीं irrelevent है। जब मैं इस शुरू में परीक्षण किया गया था कुछ महीने पहले

यह समर्थित किया गया। हालांकि, ऐसा लगता है कि यह अब मामला नहीं है, और जब मैं अपनी सत्र कुकी साफ़ करता हूं और अपना पृष्ठ पुनः लोड करता हूं, तो मेरा सत्रस्टॉरेज भी साफ़ हो जाता है। यह क्रोम और फ़ायरफ़ॉक्स दोनों का उपयोग कर रहा है।

मैं localStorage उपयोग करने के लिए के रूप में है कि, साझा कंप्यूटर के साथ समस्याओं का कारण बन सकता है जबकि sessionStorage का सफाया कर दिया जाएगा जब ब्राउज़र विंडो बंद कर दिया है नहीं करना चाहती।

जे एस मूल्य

$("#wallText").on("change",function(){ 
      sessionStorage.setItem("draftPost",JSON.stringify(draftPost)); 
     }); 
+0

इसे यहां विस्तार से समझाया गया है: https://html.spec.whatwg.org/multipage/webstorage.html#the-sessionstorage-attribute – Barmar

+0

और संक्षेप में संक्षेप में यहां बताया गया है: https://developer.mozilla.org/en -US/दस्तावेज़/वेब/एपीआई/विंडो/सत्र स्टोरेज – Barmar

+0

बाद वाले पृष्ठ से: ** किसी नए टैब या विंडो में एक पृष्ठ खोलने से नया सत्र शुरू किया जाएगा, जो सत्र कुकीज़ कैसे काम करता है से अलग है। ** – Barmar

उत्तर

1

सत्र भंडारण बचाने के लिए मेरी संग्रहीत वस्तु के मूल्य प्राप्त करने के

JSON.parse(sessionStorage.getItem("draftPost") || null); 

जे एस को मंजूरी दे दी है ब्राउज़र के बंद। यह पेज रीलोड्स और पुनर्स्थापना पर बनी हुई है। देखें: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

+0

यह वही लिंक है जो मैंने अपनी टिप्पणी में प्रदान किया था।लेकिन उनके सवाल का दावा है कि वह ऐसा नहीं कर रहा है जो उसे पढ़ने से अपेक्षित था। – Barmar

3

कुछ मोबाइल सफारी पर sessionstorage साथ ध्यान में रखना।

रूप mozila.org डॉक timolawl से संबोधित किया जाता द्वारा कहा: के कहने पर, आईओएस 5.1 के बाद से, कैश फ़ोल्डर है, जो कभी-कभी के अधीन है में सफारी मोबाइल दुकानों localStorage डेटा को साफ:

नोट ओएस, आमतौर पर यदि अंतरिक्ष छोटा है।

यह साफ-सफाई मोबाइल सफारी पर अक्सर होती है, और सभी सत्र स्टोरेज चर सभी खुले टैब के लिए नष्ट हो जाते हैं।

उदाहरण के लिए, हो रही 5 टैब खुला कहते हैं, और उसके बाद जो जावा और सीएसएस के बहुत सारे है एक नया पृष्ठ लोड हो रहा है सफाई का कारण होगा, सब sessionstorage चर को नष्ट करने।

हालांकि, LocalStorage चर संरक्षित कर रहे हैं।

इसके अलावा, सफारी पर, (मुझे डेस्कटॉप और मोबाइल दोनों पर विश्वास है), निजी ब्राउज़िंग या तो स्थानीय स्टोरेज या सत्र स्टोरेज का उपयोग करने से रोकेगी।

संबंधित मुद्दे