2011-12-01 18 views
14

ये सभी 3 पुस्तकालय इतिहास वस्तु में हेरफेर करने की अनुमति देते हैं। ठीक है, रीढ़ की हड्डी बहुत अधिक है लेकिन केवल इसे इतिहास का हिस्सा मानने दें।backbone.js, davis.js और history.js द्वारा इतिहास कार्यान्वयन में अंतर

इन 3 कार्यान्वयन के बीच एक अंतर क्या है?

उत्तर

15

इतिहास.जेएस उन ब्राउज़रों के लिए पॉलीफिल का अधिक है जो एचटीएमएल 5 पुशस्टेट का समर्थन नहीं करते हैं और पुशस्टेट के विभिन्न ब्राउज़र कार्यान्वयन के बीच अंतर को इस्त्री करने के लिए कहते हैं।

डेविस.जेएस मुख्य रूप से पुशस्टेट के शीर्ष पर एक रूटिंग परत है (हालांकि इसे आसानी से हैश रूटिंग में स्विच किया जा सकता है)। यह आपको अपने आवेदन के भीतर मार्गों को परिभाषित करने और जवाब देने के लिए एक सरल एपीआई देता है।

बैकबोन का राउटर डेविस के समान है, हालांकि यह स्वचालित रूप से हैश आधारित रूटिंग पर वापस आ जाता है जब पुशस्टेट उपलब्ध नहीं होता है।

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

+0

स्पष्टीकरण के लिए धन्यवाद: डी –

+0

I पाया गया है कि एचटीएमएल 5 पुशस्टेट समर्थन के साथ history.js ब्राउज़र में नोओटी "थोरस्टिन्सन/jquery-routes" और "mstahl/jQuery-routes" के साथ काम कर सकता है। (इन राउटर को काम करने के लिए यूआरएल में # की आवश्यकता होती है)। तो, मुझे यकीन नहीं है कि डेविस.जेएस और बैकबोन काम करेंगे? – vee

+0

आप रीडबैक को रीढ़ की हड्डी में # पर अक्षम कर सकते हैं – Tosh

0

ये रहा: केवल

  • davis.js एचटीएमएल 5 history.pushState का समर्थन करता है। ब्राउज़र जो इसके साथ काम नहीं करते हैं, समर्थित नहीं हैं, इसलिए शायद कोई विकल्प नहीं है।
  • दोनों रीढ़ की हड्डी और history.js पर ऑनशैशचेंज में गिरावट आई है।
  • जैसा कि आप जानते हैं कि पहले से ही रीढ़ की हड्डी भी एमवीसी करता है और अंडरस्कोर के माध्यम से यह निर्भर करता है कि आप कार्यात्मक सामग्री के लिए अतिरिक्त सहायक हैं।

यह वास्तव में इस बात पर निर्भर करता है कि आपको अतिरिक्त बैकबोन कार्यक्षमता की आवश्यकता है या नहीं, इस मामले में यह एक स्पष्ट विकल्प है।

+1

डेविस.जेएस एक एक्सटेंशन के माध्यम से हैश आधारित रूटिंग का समर्थन करता है - https://github.com/olivernn/davis.js/blob/master/lib/extensions/davis.hashRouting.js –