2012-01-30 10 views
5

मैं ऑफ़लाइन जावास्क्रिप्ट एप्लिकेशन पर काम कर रहा हूं। इसे आईई 7 का समर्थन करने की जरूरत है ताकि स्थानीय स्टोरेज एक विकल्प न हो। उस ने कहा, ऐप को किसी भी जानकारी को जारी रखने की आवश्यकता नहीं है (यदि आप ताज़ा करते हैं तो सब कुछ मिटा दिया जाता है और यह ठीक है)।बैकबोन बिना डेटास्टोर

तो मेरा सवाल यह है कि, मैं अपने डेटा स्टोर के रूप में मानक जावास्क्रिप्ट चर (JSON) का उपयोग करने के लिए बैकबोन कैसे सेट करूं?

यदि मैं model.url() विधि को छोड़ देता हूं तो मुझे एक त्रुटि मिलती है। मुझे कल्पना है कि यह आसान है, लेकिन मुझे यकीन नहीं है कि क्या करना है।

धन्यवाद!

उत्तर

3

यदि आप localStorage adapter is doing पर देखते हैं, तो आप पाएंगे कि यह Backbone.sync ओवरराइड कर रहा है। यह रीढ़ जो भंडारण/Newing/पुन: प्राप्त करने/जब आप new, save, fetch फोन आपका डेटा अपडेट के लिए जिम्मेदार है, आदि

डिफ़ॉल्ट रूप से में मॉड्यूल है, यह एक RESTful endpoint अपने मॉडल के url में परिभाषित का उपयोग करता है। यदि आप लोकलस्टोरेज ओवरराइड का उपयोग करते हैं, तो यह इसे स्थानीय स्टोर में रखता है।

यदि, इसके बजाय, आप इसे केवल इन-मेमोरी सरणी में रखना चाहते हैं, तो आप "पढ़ा", "अपडेट", "बनाएं" और "हटाएं" क्या परिभाषित करके उसी तरह Backbone.sync को ओवरराइड करेंगे। मैं इसे backbone-localstorage.js एडाप्टर से बाहर रखूंगा क्योंकि यह आपके इच्छित चीजों में से अधिकांश करता है, लेकिन फिर मैं आईडी/ऑब्जेक्ट कुंजी/वैल्यू जोड़े के हैश से स्टोर/पुनर्प्राप्त करूंगा।

+0

धन्यवाद! मुझे इसकी ही खोज थी। – captainclam

2

बस save या create संग्रह विधियों का उपयोग न करें।

इसके बजाय store और add का उपयोग करें। ये डेटा को भंडारण में रखने का प्रयास नहीं करते हैं।