2014-07-22 12 views
10

यह प्रश्न मुझे कुछ समय से परेशान कर रहा है।एंगुलरजेएस वेबसाइट्स: एकल एसपीए बनाम एकाधिक एसपीए ऐप्स/घटक

यदि आप कोणीय का उपयोग करके कई कार्यक्षमता वाली वेबसाइट बना रहे हैं, तो क्या यह एक विशाल एसपीए बनाने या वेबसाइट को कार्यात्मक "ऐप्स" में तोड़ने और प्रत्येक ऐप के लिए एसपीए बनाने के लिए बेहतर है?

उदाहरण के लिए, हमारे पास अधिसूचना फ़ीड, उपयोगकर्ता प्रोफ़ाइल, रिपोर्टिंग और समूह के साथ एक सोशल मीडिया वेबसाइट है। क्या आप इन सभी सुविधाओं को एक एकल एसपीए में बनाएंगे, या 4 अलग-अलग एसपीए बनाएंगे और सही एसपीए में बैकएंड फ्रेमवर्क मार्ग दें?

उदा।

www.mywebsite.foo #/प्रोफ़ाइल/12345/शिक्षा

बनाम

www.mywebsite.foo/profile/12345#/education

मैं के पक्ष में व्यक्तिगत रूप से अधिक कर रहा हूँ बाद की विधि क्योंकि यह ऐप्स के आकार को कम कर देता है, लेकिन ऐप्स के बीच नेविगेट करते समय पृष्ठ को फिर से लोड करने की आवश्यकता होती है।

वह काम init से पहले प्रत्येक पृष्ठ की योजना के लिए पता चलता है

https://markwillcollins.silvrback.com/7-things-i-wish-i-knew-about-angularjs

"3. संरचना महत्वपूर्ण है ...":

+0

आईएमओ एकमात्र स्पा केवल एकमात्र मुश्किल पक्ष जाने का तरीका है बॉट इंडेक्सिंग के बारे में है यदि आप html5mode सत्य का उपयोग करते हैं – Whisher

उत्तर

1

मार्क कोलिंग्स अपने लेख में एक बात के बारे में बात की है।

और फिर, मुझे विश्वास है, आपको पता चलेगा कि आपकी विशिष्ट आवश्यकता के लिए सबसे अच्छा तरीका क्या है।

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

1

तो, यहाँ मैं क्या सीखा है और मैं क्या किया:

मेरे सर्वर एक डिफ़ॉल्ट रूट है:

var express = require('express'); 
    var router = express.Router(); 

    ... 

    router.get('*', function(req, res) { 
    res.sendfile(path.resolve(__dirname + '/../../../build/index.html')); // Send index.html for HTML5Mode 
    }); 

    return router; 

तो, मैं, मेरी साइट पर एक से अधिक एसपीए के हो सकता है क्योंकि मैं सिर्फ अलग एचटीएमएल भेज उनके लिए टेम्पलेट्स। एक HTML5 शैली ऐप को उपरोक्त की तरह एक डिफ़ॉल्ट ऐप चुनने की आवश्यकता होगी।

एक एसपीए में क्या संबंधित है?

सभी राज्य जो उपयोगकर्ता अनुभव में अंतर-संबंधित हैं। ऐप्स (उदा। प्रमाणीकरण) के बीच राज्य साझा करना जटिल होगा। बेशक, वे सभी आपके सर्वर की पूरी स्थिति तक पहुंच सकते हैं।

यह कब उपयोगी है?

यदि आपके पास नकली हैं जो स्पष्ट रूप से अलग-अलग उपयोग मामलों को दिखाते हैं उदा। विभिन्न लॉग इन के साथ दो प्रकार के उपयोगकर्ता। या दो अलग-अलग 'स्थान' वे लॉगिन करेंगे।

क्या प्राप्त किया जाना है?

  • यदि आप "डैशबोर्ड" ऐप ग्राफ़िंग कोड का एक गुच्छा लोड करते हैं, लेकिन आपके "लैंडिंग पृष्ठ" ऐप की आवश्यकता नहीं है, तो आप अंतिम उपयोगकर्ताओं के लिए बेहतर अनुभव कर सकते हैं।
  • यदि उपयोगकर्ता अनुभव अलग हैं, तो विभिन्न स्थानों में अलग-अलग कोड संग्रहीत करना आसान है।
  • मेरे मामले में, सर्वर पर "लैंडिंग पृष्ठ" टेम्पलेट्स प्रस्तुत करने वाला एक एसईओ लाभ भी था।

आप शायद यह नहीं जानते कि आपको वास्तव में क्या करने की आवश्यकता है जब तक आप इसे आजमाएं। तो मैं एक ही ऐप में लॉगिन पर निर्भर करता है जो सब कुछ इकट्ठा करने की सिफारिश करेंगे। और डिफ़ॉल्ट ऐप में 'अज्ञात विज़िटर' अनुभव शामिल होना चाहिए।

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