2012-07-10 9 views
11

जब आप बैकबोन मॉडल को सहेजते हैं तो वास्तव में क्या होता है? यहाँ सबसे अच्छा मैं प्रलेखन here पढ़कर एक साथ टुकड़ा कर सकते हैं:जब आप बैकबोन मॉडल को सहेजते हैं तो वास्तव में क्या होता है?

  1. model.save([attributes], [options]) कहा जाता है
  2. एक "बदलाव" घटना निकाल दिया जाता है (पर केवल यदि गुण नया कर रहे हैं)
  3. सर्वर के बारे में सूचित किया गया है परिवर्तन? एक बार सर्वर की ओर

लेकिन मैं एक रीढ़ noob हूँ और मैं किसी और समझाने का एक तरीका है बेहतर काम कर सकता यकीन

  • एक "सिंक" घटना कहा जाता है।

    मैं आंशिक रूप से उत्सुक हूं कि क्या होता है। मुझे यह समझने में भी परेशानी हो रही है कि बैकबोन जेएसओएन ऑब्जेक्ट के साथ कैसे आता है जो सर्वर पर भेजता है। मेरे पास separate problem है जहां JSON ऑब्जेक्ट वह नहीं है जो मैं चाहता हूं, लेकिन मुझे नहीं पता कि इसे कैसे बदला जाए।

  • उत्तर

    8

    विस्तृत प्रक्रिया annotated source codeBackbone.Model.save और Backbone.sync के लिए मिल सकती है।

    यदि आप options.wait और options.silent को अनदेखा करते हैं, तो आपकी अपघटन अधिकतर सही होती है।

    जब आप एक model.save जारी करते हैं:

    1. गुण समारोह के लिए पारित सेट कर रहे हैं, एक परिवर्तन घटना निकाल दिया जाता है, तो मान model.sync या Backbone.sync
    2. sync को धारावाहिक के लिए
    3. save प्रतिनिधियों अनुरोध बदल JSON.stringify(model.toJSON())
    4. पर एक JSON स्ट्रिंग का डेटा सर्वर पर भेजे जाने के लिए एक अजाक्स अनुरोध भेजा जाता है, एक नई वस्तु के लिए एक POST अनुरोध, एक एक अद्यतन के लिए PUT। लक्ष्य यूआरएल model.url (या collection.url/id)
    5. जब अनुरोध पूरा हो जाता है, मॉडल को सर्वर प्रतिक्रिया के साथ अद्यतन किया जाता है, यदि कोई हो, और तदनुसार change ईवेंट ट्रिगर करता है।
    6. सफलता या त्रुटि कॉलबैक कहा जाता है, sync ईवेंट ट्रिगर किया जाता है यदि कोई सफलता कॉलबैक परिभाषित नहीं किया जाता है।

    आमतौर पर, आप अधिभावी model.toJSON या model.sync

    +2

    बैकबोन 0.9.9 में चरण छह बदल गया। Backbone.sync के भीतर http://backbonejs.org/#changelog समेकित "सिंक" और "त्रुटि" घटनाएं देखें। वे अब सफलता या त्रुटि कॉलबैक के अस्तित्व के बावजूद ट्रिगर किए गए हैं। –

    -1

    पहले करके इस व्यवहार को अनुकूलित कर सकते हैं, मैं सुझाव है कि आप रीढ़ की हड्डी के स्रोत कोड को पढ़ने के लिए, वास्तव में बहुत simple.Default रीढ़ की हड्डी और सर्वर साइड बातचीत के माध्यम से हासिल की है है backbone.sync।

    दूसरा, आप फिर से कोड के डीबग मॉडल.save विधि का पता लगा सकते हैं, स्वाभाविक रूप से विवरण जान सकते हैं। मेरा सुझाव है कि आप यहां शुरू करें: http://backbonejs.org/examples/todos/index.html

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

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