मैं वर्तमान में यह लिख रहा हूं कि एक बहुत बड़ा एकल पृष्ठ वेब/जावास्क्रिप्ट एप्लिकेशन क्या होगा।बहुत बड़ी एकल पृष्ठ एप्लिकेशन डिज़ाइन समस्याएं
मैं जिन तकनीकों का उपयोग कर रहा हूं वे एएसपी.नेट एमवीसी 4, jquery, knockout.js और amplify.js हैं।
मेरी समस्या यह है कि यदि अधिकांश पृष्ठ अनुप्रयोग उदाहरण छोटे अनुप्रयोगों के लिए नहीं हैं, तो सभी स्क्रिप्ट टेम्पलेट्स (चाहे यह jquery, हैंडलबार, आदि ...) सभी एक ही फाइल में हैं बाकी एचटीएमएल कोड के साथ। यह छोटे ऐप्स के लिए ठीक है लेकिन मैं जो एप्लिकेशन बना रहा हूं वह कई रखरखाव रसद अनुप्रयोग है, जिसमें कई, कई, कई स्क्रीन हैं।
मेरे द्वारा अब तक का दृष्टिकोण है कि मेरे पास एक बाहरी खोल (मेरी मुख्य अनुक्रमणिका.cshtml फ़ाइल) है और मैं jquery की लोड() विधि का उपयोग कर रहा हूं या उस विशेष फ़ाइल को इंजेक्ट करने के लिए उपयोग कर रहा हूं जब उपयोगकर्ता एक निश्चित चयन करता है ।
उदाहरण:
App.loadModule = function(path, callback){
App.mainContentContainer.load(App.siteRoot + path, callback);
};
सब कुछ ठीक चल रहा था जब तक मैं वास्तव में नव लोड पर विभिन्न प्रपत्र तत्वों के साथ बातचीत शुरू करने के लिए की जरूरत:
function handleLoginClick(){
App.mainContentContainer.delegate('#btnLogin', 'click', function() {
App.loadModule('Home/ProductionControlMenu', App.MainMenuView.render());
});
}
यहाँ App.loadModule समारोह के लिए कोड है स्क्रीन। jquery सीधे उन पर एक संभाल नहीं लग रहा है। मैं .live() या .delegate() का उपयोग नहीं कर सकता क्योंकि वे ईवेंट नहीं हैं, वे टेक्स्टबॉक्स और बटन हैं और कभी-कभी मुझे अपने सीएसएस कक्षाओं को बदलने की आवश्यकता होती है।
App.mainContentContainer.find('#btnLogin').addClass('disabled');
:
वे एक ही तरीका है मैंने पाया बाहरी कवच से एक तत्व तो जैसे और उपयोग jQuery के .find() विधि (कुछ है कि .load() के माध्यम से लोड नहीं किया गया था) पर एक संभाल पाने के लिए है
स्पष्ट रूप से मैं इस तरह कुछ ऐसा नहीं करना चाहता हूं जब भी मुझे किसी तत्व तत्व से बातचीत करने या यहां तक कि पुनर्प्राप्त करने की आवश्यकता हो।
क्या किसी के पास कोई विचार है कि मैं संभावित रूप से सैकड़ों .html फ़ाइलों के साथ एक बनाए रखने योग्य बहुत बड़े एकल पृष्ठ एप्लिकेशन को कैसे बना सकता हूं, बिना किसी फ़ाइल में स्थित सभी HTML कोड के बिना और अभी भी इसके आसपास हो .load () मुद्दा मैं कर रहा हूँ?
किसी भी विचार की सराहना की जाएगी। :-)
वी/आर
क्रिस
अद्यतन
मैंने सोचा कि मैं एक अपडेट पोस्ट होता है और कैसे चीजें चला गया और क्या काम किया है के रूप में। बहुत से शोध के बाद मैंने Google के AngularJS जावास्क्रिप्ट ढांचे के साथ जाने का फैसला किया। यह क्षैतिज रूप से कठिन साबित हुआ और मैं निश्चित रूप से उन सभी को सलाह दूंगा जो इसे देखने के लिए एक बड़ा एसपीए बनाने की सोच रहे हैं।
लिंक:
मुख्य साइट कोणीय पर http://angularjs.org/
बहुत बढ़िया मुक्त लघु वीडियो: http://www.egghead.io/
कोणीय ने आपकी समस्या को किस तरह हल किया? – Greg
क्या आप इस समस्या को हल करने के लिए कोणीय का उपयोग करने का एक छोटा सा उदाहरण दे सकते हैं? या आप दूसरी एचटीएमएल फाइल कैसे लोड कर सकते हैं और टेम्पलेटिंग इत्यादि कैसे लागू कर सकते हैं? –