मैं एक वेब आधारित आवेदन जहाँ उपयोगकर्ता स्क्रीन पर "वस्तुओं" साथ सूचना का आदान (jQuery और एसवीजी के बहुत सारे के साथ यानी जावास्क्रिप्ट) बना रहा हूं (DIVs कि, चारों ओर draged किया जा सकता है आकार दिया और जुड़े arraows से के बारे में सोच - एक सदिश की तरह ड्राइंग प्रोग्राम या एक ग्राफिकल प्रोग्रामिंग भाषा)।जावास्क्रिप्ट में इंटरैक्टिव ऑब्जेक्ट्स कहां रखें?
प्रत्येक "ऑब्जेक्ट" में व्यक्तिगत जानकारी होती है लेकिन तत्वों के "वर्ग" से संबंधित सभी लोग यह स्पष्ट करते हैं कि इस एप्लिकेशन को ओओपी दृष्टिकोण का उपयोग करके प्रोग्राम किया जाना चाहिए।
लेकिन मैं कहाँ "वस्तुओं" सबसे अच्छा की दुकान करते हैं?
- क्या मुझे सभी (जेएस मूल) वस्तुओं के साथ वैश्विक संरचना ("रजिस्ट्री") बनाना चाहिए और उन्हें "स्वयं को डीओएम पर खींचना" चाहिए?
- या मैं इस तरह की संरचना से बचने और मेरी वस्तुओं के रूप में (प्रासंगिक) डोम नोड्स के बारे में सोच और .data() उन्हें भी उतना ही प्रासंगिक डेटा संलग्न करना चाहिए?
पहला दृष्टिकोण बहुत एमवीसी है - लेकिन मुझे लगता है कि सभी ईवेंट हैंडलर का लगाव गैर तुच्छ होगा।
दूसरा दृष्टिकोण घटनाओं को एक छोटे से तरीके से संभाल लेगा और यह डुप्लिकेट संरचना नहीं बनाता है, लेकिन मुझे लगता है कि सामान्य ओओ सामान (विधियों की तरह) अधिक जटिल होगा।
आप क्या सिफारिश करते हैं? मुझे लगता है कि उत्तर जावास्क्रिप्ट और एसवीजी विशिष्ट होगा क्योंकि "सामान्य" प्रोग्रामिंग भाषाओं में इतनी अत्यधिक संगठित आउटपुट "कैनवास" नहीं है।
मैं जवाबों का इंतजार करूंगा क्योंकि यह प्रश्न आईएमओ बहुत दिलचस्प है ... लेकिन आपने कैनवास के लिए जाने के बजाय एसवीजी क्यों चुना और बस कैनवास पर खुद को चित्रित करने के लिए "पारंपरिक" दृष्टिकोण क्यों चुना? – 6502
मैंने कैनवास पर एसवीजी चुना क्योंकि मेरा डेटा वेक्टर का है और पिक्सेल प्रकार का नहीं है। और, इससे भी महत्वपूर्ण बात यह है कि, मैं जावास्क्रिप्ट इवेंट्स (mousedown, mousemove, ...) का उपयोग कर रहा हूं और जैसे ही मैं उन्हें एसवीजी तत्वों से जोड़ सकता हूं, मैं ब्राउज़र के मूल कार्यान्वयन के लिए "टकराव का पता लगाने" को ऑफ़लोड कर रहा हूं और डॉन जावास्क्रिप्ट – Chris