2013-10-27 7 views
5

मेरे उल्का ऐप में मैं उपयोगकर्ता गतिविधि के बारे में अस्थायी जानकारी संग्रहीत करने के लिए सत्र का उपयोग कर रहा हूं। मैं इस जानकारी के कुछ हिस्सों को ब्राउज़र में amplify.js के साथ जारी रखना चाहता हूं, लेकिन यह सब नहीं।उल्का जेएस: सत्र ऑब्जेक्ट आंशिक रूप से लगातार

मुझे 'अस्थायी' सत्र कुंजी और 'लगातार' सत्र कुंजी रखने का कोई तरीका चाहिए। उदाहरण के लिए मैं

Session.set('persistent', 'this is persisted to browser memory'); 
Session.set('temporary', 'this will be erased on page reload, etc'); 

कह सकते हैं और उसके बाद के बाद एक पृष्ठ पुनः लोड

Session.get('persistent'); // returns 'this is persisted to browser memory' 
Session.get('temporary'); // returns undefined 

मैं a related post on SO पाया लेकिन यह इस दृष्टिकोण पूरे सत्र वस्तु है, जो मैं नहीं करना चाहते बनी रहती है बचाता है। इसके अलावा, मैं इसके लिए मोंगोडीबी का उपयोग नहीं करना चाहता, मैं चाहता हूं कि स्टोरेज पूरी तरह क्लाइंट साइड हो ...

अग्रिम में बहुत धन्यवाद!

+1

के लिए Github page मैं क्या समझ से, जुड़ा हुआ जिस पोस्ट को आप काम करेगा। जब आप 'अस्थायी' सत्र कुंजी चाहते हैं तो सामान्य 'सत्र' का उपयोग करें, और जब आप 'लगातार' सत्र कुंजी चाहते हैं तो विस्तारित 'सत्र एम्पलीफाइ' का उपयोग करें। – dayuloli

उत्तर

9

localStorage का उपयोग करें। यह थोड़ा मुश्किल है अगर आप इसे प्रतिक्रियाशील होना चाहते है, लेकिन मैं आप Session का उपयोग के साथ प्रदर्शित हो localStorage

किया जब शुरू अपने ब्राउज़र की localStorage जार से आइटम मिल पाने के लिए कर सकता है लगता है

Meteor.startup(function() { 
    Session.set("yourItem", localStorage.getItem("yourItem")); 
}); 

जब यह स्थापित करने :

localStorage.setItem("yourItem", "yourValue"); 
Session.set("yourItem", localStorage.getItem("yourItem")); 

एक बात है कि संभव नहीं है जब तक आप MongoDB या कुछ और उपयोग करें यदि आप एक टैब पर इस सेट जब तक आप पेज को ताज़ा यह दूसरों पर बदल नहीं होते है। लेकिन मुझे लगता है कि सत्र वैसे भी इस तरह है।

+1

मैं स्थानीय स्टोरेज से सहमत हूं, हालांकि मैं एम्पलीफाइज का उपयोग करता हूं (जो स्थानीय स्टोरेज, कुकीज़ और संबंधित सामग्री के शीर्ष पर एक इंटरफ़ेस के रूप में कार्य करता है) –

+0

हमें तब 'सत्र' क्यों चाहिए? –

+1

@VictorFerreira इसे प्रतिक्रियाशील बनाने के लिए। स्थानीय स्तर पर अपने आप पर प्रतिक्रियाशील नहीं है। – Akshat

6

पैकेज u2622:persistent-session लीवरेज amplify.js स्थानीय भंडारण क्षमता का उपयोग करने के साथ मुझे सफलतापूर्वक जानकारी प्रदान करने और जानकारी तक पहुंचने के लिए उल्का Session ऑब्जेक्ट का उपयोग करने के दौरान सफलता मिली थी।

meteor add u2622:persistent-session करने के बाद, आप तो पर जाने के लिए और की तरह सामान कर सकते हैं:

  • Session.setPersistent(key, value)
  • Session.setDefaultPersistent(key, value)

u2622:persistent-session जब तक आप स्वयं ब्राउज़र की स्पष्ट, टैब और पुनः लोड भर में अपने डेटा को बनाए रखता है स्थानीय भंडार।

चेकआउट अधिक जानकारी

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