2014-06-16 22 views
5

एम्बर डेटा संस्करण से संस्करण में तेज़ी से आगे बढ़ रहा है और डेटा को सहेजने की विधि इसके साथ बदल रही है। अभी संस्करण 1.0.0-beta.8.2a68c63a के साथ एक रिकॉर्ड अद्यतन करने के लिए उचित तरीका है और फिर सर्वर पर एक PUT अनुरोध को ट्रिगर करने के लिए record.save() करें। मेरे वर्तमान ऐप के साथ मैं एक साथ कई रिकॉर्ड अपडेट कर रहा हूं और इसमें 50+ PUT AJAX अनुरोध सर्वर पर वापस शामिल हो सकते हैं। हम प्रदर्शन और दक्षता के मुद्दों के बारे में चिंतित हैं और बैच अनुरोध करने के लिए कोई दस्तावेज नहीं मिला है। अगर कुछ भी है, तो हमें ऑनलाइन बहुत सारे लोग मिल गए हैं जो एक ही काम करने की तलाश में हैं और उन्हें कोई अच्छा समाधान नहीं मिला है।एम्बर डेटा थोक सर्वर पर सहेजता है

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

+2

यदि आप एकाधिक संसाधन प्रकारों के बारे में बात कर रहे हैं, और एक ही एंडपॉइंट पर मारने वाले कई अपडेट, मैं पूरी तरह से एम्बर डेटा से दूर हो जाऊंगा। – Kingpin2k

+0

हाँ, इसमें किसी पृष्ठ पर ब्लॉक की एक सूची को पुनर्व्यवस्थित करना और फिर अपनी स्थिति को वापस सहेजना शामिल है, जिसका अर्थ है कि सभी ब्लॉक अपडेट करना। तो जब आप एक को स्थानांतरित करते हैं, तो वे सभी शिफ्ट करते हैं, जो हर समय सर्वर पर 50 से 100 पुट कमांड हो सकते हैं। ऐसा लगता है कि एम्बर डेटा वास्तव में इसके लिए तैयार नहीं है। –

+2

निश्चित रूप से नहीं, आप अपने स्वयं के कार्यान्वयन को बंद करने से बेहतर हैं, यह बहुत भारी नहीं होना चाहिए। – Kingpin2k

उत्तर

0

आप इसे DS.EmbeddedRecordsMixin के साथ कर सकते हैं। (उदाहरण के लिए, अपनी टिप्पणी के आधार पर) अपने पृष्ठ वस्तु कई ब्लाकों है, तो page-serializer.js दिखाई देगा:

import DS from 'ember-data'; 

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
    blocks: { serialize: 'records' } 
    } 
}); 

जब भी आप एक पेज रिकॉर्ड उसके संबंधित ब्लॉक के सभी रिकॉर्ड है कि एक PUT अनुरोध में शामिल किया जाएगा बचाने के ।

प्रलेखन here देखें।

+0

यह स्थिति अब हो सकती है, लेकिन मैंने एम्बर का उपयोग बंद कर दिया है क्योंकि यह काम करने के लिए बहुत बड़ा और जटिल हो गया है। मुझे लगता है कि यह फिर से बहुत अधिक Sproutcore है। –

+0

कोई चिंता नहीं। मुझे लगा कि अन्य लोग इस पर आ सकते हैं। – andorov

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