मैं एक पक्ष परियोजना के लिए अवधारणा चरण के एक प्रोटोटाइप / सबूत के अंत के पास हूं, जिस पर मैं काम कर रहा हूं, और कुछ बड़े पैमाने के एप्लिकेशन डिजाइन निर्णयों पर निर्णय लेने की कोशिश कर रहा हूं। एप्लिकेशन एक परियोजना प्रबंधन प्रणाली है जो चुस्त विकास प्रक्रिया की ओर अधिक अनुरूप है। मुझे जिन निर्णयों की आवश्यकता है, उनमें से एक पारंपरिक बहु-पृष्ठ अनुप्रयोग या एक एकल पृष्ठ अनुप्रयोग के साथ जाना है या नहीं।
वर्तमान में मेरा प्रोटोटाइप एक पारंपरिक मल्टी-पेज सेटअप है, हालांकि मैं अपने जावास्क्रिप्ट (jQuery) कोड के लिए कुछ संरचना को साफ करने और लागू करने के लिए backbone.js को देख रहा हूं। ऐसा लगता है जैसे बैकबोन.जेएस का उपयोग बहु-पृष्ठ अनुप्रयोगों में किया जा सकता है, यह एकल पृष्ठ अनुप्रयोगों के साथ अधिक चमकता है। मैं सिंगल पेज एप्लिकेशन डिज़ाइन दृष्टिकोण का उपयोग करने के फायदे और नुकसान की सूची के साथ आने की कोशिश कर रहा हूं। अब तक मेरे पास:
लाभ
सभी डेटा को किसी प्रकार के एपीआई के माध्यम से उपलब्ध होना चाहिए - यह मेरे उपयोग के मामले के लिए एक बड़ा लाभ है क्योंकि मैं अपने आवेदन के लिए वैसे भी एपीआई करना चाहता हूं। डेटा प्राप्त / अद्यतन करने के लिए अभी मेरे लगभग 60-70% कॉल REST API के माध्यम से किए जाते हैं। एक पृष्ठ का आवेदन करने से मुझे अपने REST API का बेहतर परीक्षण करने की अनुमति मिलेगी क्योंकि एप्लिकेशन स्वयं इसका उपयोग करेगा। इसका यह भी अर्थ है कि जैसे-जैसे एप्लिकेशन बढ़ता है, एपीआई स्वयं बढ़ेगा, क्योंकि एप्लिकेशन का उपयोग करता है; एप्लिकेशन में ऐड-ऑन के रूप में एपीआई को बनाए रखने की कोई आवश्यकता नहीं है।
अधिक उत्तरदायी अनुप्रयोग - चूंकि प्रारंभिक पृष्ठ के बाद लोड किए गए सभी डेटा को न्यूनतम रखा जाता है और कॉम्पैक्ट प्रारूप (जैसे JSON) में प्रेषित किया जाता है, इसलिए डेटा अनुरोध आमतौर पर तेज होना चाहिए, और सर्वर थोड़ा कम प्रसंस्करण करेगा।
नुकसान
- कोड का दोहराव - उदाहरण के लिए, मॉडल कोड। मैं सर्वर साइड (इस मामले में PHP) और जावास्क्रिप्ट में क्लाइंट साइड दोनों पर मॉडल बनाने जा रहा हूं।
- जावास्क्रिप्ट में व्यावसायिक तर्क - मैं इस बारे में कोई ठोस उदाहरण नहीं दे सकता कि यह क्यों खराब होगा लेकिन यह सिर्फ मुझे जावास्क्रिप्ट में व्यावसायिक तर्क होने के लिए सही नहीं लगता है जिसे कोई भी पढ़ सकता है।
- जावास्क्रिप्ट मेमोरी लीक - चूंकि पेज कभी भी लोड नहीं होता है, जावास्क्रिप्ट मेमोरी लीक हो सकता है, और मुझे यह भी नहीं पता होगा कि उन्हें कहां से डिबग करना है।
दूसरी चीजें भी हैं जो एक तरह की दोहरी धार वाली तलवारें हैं। उदाहरण के लिए, एकल पृष्ठ अनुप्रयोगों के साथ, प्रत्येक अनुरोध के लिए संसाधित किया गया डेटा बहुत कम हो सकता है क्योंकि आवेदन विशेष अनुरोध के लिए आवश्यक न्यूनतम डेटा के लिए पूछ रहा होगा, हालांकि इसका मतलब यह भी है कि इसके लिए बहुत अधिक छोटे अनुरोध हो सकते हैं सर्वर। मुझे यकीन नहीं है कि यह एक अच्छी या बुरी चीज है।
सिंगल पेज वेब एप्लिकेशन के कुछ फायदे और नुकसान क्या हैं जिन्हें मुझे यह ध्यान में रखना चाहिए कि मुझे अपने प्रोजेक्ट के लिए किस रास्ते पर जाना चाहिए?