2011-09-18 21 views
6

मैं सेन्चा टच में नया हूं और अभी भी अपने डेटा हैंडलिंग पैटर्न से काफी भरोसा नहीं करता हूं। जिस तरह से मैं अपना आवेदन स्थापित करना चाहता हूं वह इस तरह है:सेन्चा टच स्टोरेज सिंक

  1. उपयोगकर्ता के डेटा को AJAX के माध्यम से रिमोट सर्वर से पुनर्प्राप्त करें।

  2. इसे स्थानीय संग्रहण में सहेजें। कोई भी संशोधन (संपादन, जोड़ना, आइटम हटाना) स्थानीय डेटा अपडेट करें।

  3. कुछ समय पर (जब उपयोगकर्ता 'सिंक' पर क्लिक करता है, जब उपयोगकर्ता लॉग आउट करता है, या ऐसा कुछ), स्थानीय रूप से संग्रहीत संग्रहीत डेटा सर्वर के साथ एक बार AJAX अनुरोध के माध्यम से समन्वयित होता है।

तो इस पैटर्न को प्राप्त करने के लिए मेरे आवेदन की बुनियादी संरचना क्या होगी? और, जब हम यहां हैं, तो क्या सेन्चा टच में निर्दिष्ट स्टोर के लिए स्थानीय डेटाबेस (स्थानीय कुंजी-मूल्य भंडारण के विपरीत) का उपयोग करने का कोई तरीका है?

+1

मुझे अभी भी एक ही स्थिति मिली है। – Neutralizer

उत्तर

8

सबसे पहले सेन्चा.आईओ सिंक उस कार्यक्षमता को प्रदान करता है जिसे आप ढूंढ रहे हैं। यह अभी भी बीटा में है, लेकिन संभवतः आपको वही करना होगा जो आपको चाहिए और आपको डेटाबेस को होस्ट करने की आवश्यकता नहीं होगी: http://www.sencha.com/products/io

मेरे लिए मैंने स्थानीय रूप से डेटा स्टोर करने के लिए स्थानीय स्टोरेज प्रॉक्सी का उपयोग करने वाले ऐप्स बनाए हैं। यह बहुत आसान है। यहाँ का उपयोग कर डेटा भंडारण के उदाहरण के एक जोड़े हैं:

  1. http://www.sencha.com/learn/taking-sencha-touch-apps-offline/
  2. http://data-that.blogspot.com/2011/01/local-storage-proxy-with-sencha-touch.html
  3. http://davehiren.blogspot.com/2011/09/sencha-touch-working-with-models.html
  4. http://www.sencha.com/learn/working-with-forms/

अनुप्रयोग में बाद में मैं एक AJAX कॉल यह सब ले जाएगा है वह स्थानीय डेटा और कुछ रिपोर्ट उत्पन्न करने के लिए इसे सर्वर पर भेज दें।

एक बार जब आपके स्टोर और मॉडल सही तरीके से सेटअप हो जाए तो डेटा को वापस प्राप्त करना आसान हो जाता है। उदाहरण के लिए मैं एक contactInfo दुकान ही कभी एक प्रविष्टि है कि है:

var myContactInfo = contactInfo.first().data; 

मैं एक और स्टोर सेटिंग्स कहा जाता है, जो अनेक प्रविष्टियां हैं की है। मैं आसानी से (एक बेहतर तरीका है, हालांकि हो सकता है) इस तरह उन्हें प्राप्त कर सकते हैं: सभी चीजों को एक अच्छा के साथ होता है

var data = {settings: settingsArr, contactInfo: myContactInfo}; 
Ext.Ajax.request({ 
url: 'save.php', 
params: {json: Ext.encode(data)}, 
success: function(response, opts) { 
     // celebrate 
} 
}); 

:

var settingsArr = [] 
settings.each(function() { 
    settingsArr.push(this.data); 
}); 

मैं तो आसानी से इस सर्वर के लिए तो जैसे भेज सकते हैं उदाहरणों को देखें और एपीआई आपको मूलभूत जानकारी प्राप्त करने के बाद आपकी मदद करनी चाहिए: http://dev.sencha.com/deploy/touch/docs/?class=Ext.data.Store

+0

सुंदरतापूर्वक उत्तर दिया। –

+0

मुझे लगता है कि Sencha.io घर क्लाउड समाधान में है। यह उन उपकरणों के बीच सिंक होगा जो आप सेन्चा के साथ प्रोग्राम करते हैं। हालांकि यदि आप अपने सेन्चा ऐप और अपने आरईएसटी सर्वर (रेल शायद?) के बीच सिंक करना चाहते हैं तो अन्य सिस्टम के लिए कोई _sync_ उपलब्ध नहीं है। जब तक मैं सेन्चा के साथ गलत नहीं हूं, आपके पास केवल तीन विकल्प हैं: ऑनलाइन संग्रहण, ऑफलाइन स्टोरेज या केवल-पढ़ने के लिए ऑफ़लाइन कैशिंग।ऑफलाइन कैशिंग को पढ़ना/लिखना नहीं है जैसे आप द्वि-दिशात्मक सिंकिंग के साथ अपेक्षा करेंगे। – Sukima

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