2012-10-27 31 views
27

AngularJS दो तरह से ग्राहक के पक्ष बाध्यकारी डेटा का उपयोग करता (from AngularJS Developers guide): Two-Way Data BindingAngularJS ग्राहक के पक्ष बाध्यकारी डेटा और सर्वर साइड templating

किसी AngularJS दो तरह से ग्राहक के साथ सर्वर साइड templating इंजन के मिश्रण के उपयोग पर विचार किया गया है साइड डेटा बाइंडिंग। कुछ ऐसा: Mixed data binding

मैं पृष्ठ के हिस्सों (घटकों) के लिए AngularJS का उपयोग करने के बारे में सोच रहा हूं? क्या यह अच्छा विचार होगा?

मैं सुनना पसंद करेंगे, तो आप पहले से ही इसी तरह के दृष्टिकोण के साथ अनुभव था और क्या कमियां और फायदे थे ...

+0

मैं जेड टेम्पलेट्स के अंदर एंगुलरजेएस का उपयोग कर रहा था, जो ठीक काम करता था।बस सुनिश्चित करें कि दोनों टेम्पलेट इंजन सिंटैक्स के कुछ हिस्सों को साझा नहीं करते हैं क्योंकि आप नरक से बचने में समाप्त हो जाएंगे। मैं अंत में नॉकआउट के साथ गया, लेकिन दोनों जेड के साथ अच्छी तरह से काम करते हैं, क्योंकि जेड घुंघराले ब्रेसिज़ का उपयोग नहीं करता है (अगर यह होगा -> नरक से बचें)। – Prinzhorn

+0

अच्छा बिंदु! AngularJS संस्करण 1.0 से, आप [बदल सकते हैं] (http://stackoverflow.com/questions/12923521/angular-js-custom-delimiter) इंटरपोलेशन मार्कअप आसानी से। यह ऐसी स्थिति में मदद कर सकता है। – PrimosK

+0

मैंने एंगुलरजेएस में इतना गोता नहीं लगाया, लेकिन यह जानना अच्छा है। दूसरे पर नॉकआउट में ऐसा कुछ भी नहीं है, केवल गुण (जब तक आप बाहरी टेम्पलेट इंजन का उपयोग नहीं करते)। – Prinzhorn

उत्तर

10

कोणीय एक पूरा यूआई ग्राहक ढांचे प्रतिपादन है। आप इसमें डेटा खिला सकते हैं, और यह उचित एचटीएमएल प्रस्तुत करेगा। अपने स्वयं के कोणीय पर एक टेम्पलेटिंग समाधान पूरी तरह से किसी भी सर्वर से डी-युग्मित है।

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

संक्षेप में, आप ऐसा नहीं करना चाहते हैं क्योंकि आप अपने सर्वर को जावास्क्रिप्ट को प्रतिपादित करना नहीं चाहते हैं ... यह उन सभी वर्षों के कारण स्पष्ट है जो हम प्रतिपादित कर रहे हैं सर्वर पर हमारे सभी एचटीएमएल।

अंतिम परिणाम यह महत्वपूर्ण है। यूआई ठीक से काम करता है और एप्लिकेशन को बनाए रखना आसान है। यदि आपको अपना समाधान बनाए रखने में आसान लगता है, तो आपको यह करना चाहिए। मेरे पास एक सर्वर के साथ सीधा एचटीएमएल और जावास्क्रिप्ट की तुलना में बनाए रखने के लिए बहुत आसान लग रहा है, जो कि JSON होस्ट करने के अलावा कुछ भी नहीं करता है।

+12

मुझे लगता है कि कम से कम एक लाभ है: आप एसईओ के लिए उपयोगी प्रारंभिक डेटा के साथ पृष्ठ प्रस्तुत कर सकते हैं। मैंने इसके बारे में भी सोच रहा है, लेकिन वास्तव में, ऐसा लगता है कि कोई क्लाइंट-साइड टेम्पलेट इंजन नहीं है जो इस परिदृश्य का समर्थन करता है। – tanathos

+2

यह एसईओ के लिए उपयोगी हो सकता है ... अभी के लिए। लेकिन खोज इंजन लगातार उपयोगकर्ताओं के लिए सर्वोत्तम परिणाम प्राप्त करने की कोशिश कर रहे हैं। लंबे समय तक आपकी सबसे अच्छी शर्त ऐसी साइट विकसित करना है जो उपयोगकर्ता को सामग्री को सर्वोत्तम तरीके से वितरित करे, और Google/याहू/बिंग को उनके अंत का ख्याल रखना चाहिए। –

+10

पेशेवर साइटों (जैसे ई-कॉमर्स) में अक्सर आवश्यकता होती है कि साइट को जावास्क्रिप्ट के बिना काम करना पड़े (भले ही उपयोगकर्ता-बेस आजकल जावास्क्रिप्ट अक्षम नहीं है)। तो डेटा के साथ पेज को प्रीलोड करने के लिए यह एक आवश्यक बुराई है। दूसरा धीमा पृष्ठ लोड है जो साइट फ़्लिकर को टेम्पलेट को संकलित करने से दिखाता है। तो एसईओ की तुलना में वे अन्य कारण हैं कि क्यों AFIDEK सर्वरसाइड प्रीलोडिंग की आवश्यकता है। – Spoike

3

मेरे पास आपके जैसा ही दुविधा थी, मैं सर्वर साइड टेम्पलेट इंजन के रूप में SMARTY का उपयोग करने की पृष्ठभूमि से आया हूं और हमने हाल ही में AngularJS का उपयोग शुरू किया है।

मुझे लगता है कि दोनों समाधान मिश्रण मिश्रण कुल अलगाव के सार में उपयुक्त होगा। यानी आप दोनों पृष्ठों के साथ अपने पृष्ठ का हिस्सा मिश्रण नहीं करते हैं लेकिन दोनों तकनीकों का अलग-अलग उपयोग करते हैं।

उदाहरण के लिए यदि आपके पास एक लिस्टिंग पृष्ठ है जहां उपयोगकर्ता इसके साथ बातचीत नहीं करेंगे, तो आप सर्वर साइड टेम्पलेट को पूरी तरह से उपयोग कर सकते हैं।

लेकिन यदि किसी पृष्ठ में इस मामले में बहुत सारे हेरफेर और उपयोगकर्ता पक्ष परस्पर संपर्क शामिल है तो कोणीय का उपयोग करना चाहिए।

यदि आप एसपीए (एकल पृष्ठ एप्लिकेशन) का उपयोग कर रहे हैं तो सर्वर साइड टेम्पलेट का उपयोग न करें।

0

हाल ही में किए गए कॉर्डोवा ऐप में, हमने एक प्रकार का मिश्रण इस्तेमाल किया। फ़ॉर्म, सूचियों, हेडर और मेन्यू जैसे सामग्री को हमने कोणीय तरीके से किया है, आरटीई से सामग्री जैसे कुछ हिस्सों या अक्सर बदलते टेम्पलेट्स को हमने ngBindHtml निर्देश के साथ जोड़ा है। यदि ग्राहक लेआउट बदलना चाहते हैं या वर्तमान में अज्ञात सामग्री को रखना चाहते हैं तो ऐप के सामग्री पृष्ठों में लचीला होना चाहिए। लेकिन मैं सुझाव दूंगा: यदि आप ऐप को आसान बनाए रख सकते हैं (कोई लंबी तैनाती/स्वीकृति प्रक्रिया नहीं) तो आपको इसे कोणीय तरीके से करना चाहिए (लेकिन मन में कोई एसईओ नहीं है;)।