उल्का का उपयोग करते हुए, मैं समझने का प्रयास कर रहा हूं कि सर्वर-साइड Meteor.methods()
का उपयोग कब करें, जबकि अभी भी तत्काल यूआई अपडेट बनाए रखें।Meteor.methods का उपयोग करने और स्टब्स का उपयोग करने के लिए
एंड्रयू स्काला के introductory tutorial से, वह दावा है कि Meteor.methods()
इस्तेमाल किया जाना चाहिए जब आप अद्यतन करने और अपने डेटाबेस दस्तावेजों को संशोधित करना चाहते:
विचार है कि आपको लगता है कि खतरनाक चीजें करते सर्वर पर सभी कार्यों को परिभाषित है डेटा को संशोधित और अद्यतन करने की तरह, और उसके बाद क्लाइंट उन कार्यों को कॉल करें और नियमित कार्यों जैसे वापसी मान प्राप्त करें। क्लाइंट कार्यान्वयन को कभी नहीं देखता है और व्यक्तिगत रूप से डेटा को संशोधित नहीं करता है। सर्वर सभी काम करता है।
और यह सलाह के बाद, मैं अपने कोड में यह लागू किया:
सर्वर साइड:
Meteor.methods({
addMovie: function(data) {
var movie = Movies.insert({name: data});
return movie;
},
...
क्लाइंट-साइड:
Template.movies.events = ({
'click #add-movie': function(e) {
var name = document.getElementById('movie-name').value;
Meteor.call('addMovie', name);
return false;
},
...
यह काम करता है, लेकिन यह धीमी है । यूआई तुरंत अपडेट नहीं होता है अगर आप क्लाइंट-साइड पर Movies.insert()
कहलाते हैं। docs संकेत मिलता है कि, समस्या को सुधारने के लिए, आप स्टब्स क्लाइंट-साइड पर बना सकते हैं:
कॉलिंग तरीकों एक ही नाम के सर्वर तरीकों के साथ जुड़े ठूंठ कार्यों को परिभाषित करता है। यदि आप नहीं चाहते हैं तो आपको अपनी विधि के लिए स्टब को परिभाषित करने की आवश्यकता नहीं है। उस स्थिति में, विधि कॉल केवल अन्य सिस्टम में दूरस्थ प्रक्रिया कॉल की तरह हैं, और आपको सर्वर से परिणामों के लिए का इंतजार करना होगा।
लेकिन इन स्टब्स को कैसा दिखना चाहिए? क्या यह मूल रूप से सर्वर-साइड विधि के समान दिखना चाहिए? यदि हां, तो बात क्या है? मैं Meteor.methods()
के उपयोग और उद्देश्य, स्टब्स के बिंदु/उपयोग, और उनके कार्यान्वयन के अधिक व्यापक स्पष्टीकरण की तलाश में हूं।
संपादित करें: डेविड ग्रीनस्पैन ने meteor-talk पर Meteor.methods() और स्टब्स के उपयोग को स्पष्ट करने में मदद की है।
क्या आप डेविड के उत्तर से खुश हैं? यदि ऐसा है, तो बस इसे एक उत्तर के रूप में पोस्ट करें और इसे स्वीकार करें। –