javascript - ExtJS दर्शन क्या है? एकल पृष्ठ आवेदन?




ajax design (9)

मुझे ExtJs का उपयोग करके अपना अगला प्रोजेक्ट लिखना होगा। यह एक अच्छा जावास्क्रिप्ट lib है लेकिन मैं इसके पीछे विचार को पूरी तरह से समझ नहीं पा रहा हूं। उदाहरण के लिए दस्तावेज़ पृष्ठ ले लो।

क्या मुझे अपने वेब अनुप्रयोगों को इस तरह के extjs के साथ लिखना चाहिए? एक पृष्ठ जिसे कभी भी ताज़ा नहीं किया जाना चाहिए, और AJAX द्वारा किया जा रहा सबकुछ?

यदि सही जगह पर पहुंचने पर आप इस तरह के अनुप्रयोगों को डीबग करते हैं तो बहुत सारे 'क्लिकिंग' ले सकते हैं और इसके साथ काम कर सकते हैं। आप परिणाम देखने के लिए बग को ठीक नहीं कर सकते हैं और ब्राउज़र में रीफ्रेश हिट कर सकते हैं।

कोई सुझाव?


Answers

आप हैशचेंज श्रोता पर कुछ उपयोग कर सकते हैं, साथ ही जिसे मैं extjs स्क्रीन लोड करने के लिए "बंद" प्रारूप कहता हूं। मैंने एक पृष्ठ लिखा है कि एक पृष्ठ extjs एप्लिकेशन कैसे बनाया जाए।


आपको ऐसा लिखना नहीं है। कभी-कभी यह उस तरह से और तेज़ लग रहा है (नए पृष्ठों के लिए कोई ताज़ा नहीं)।

आप जावास्क्रिप्ट के लिए स्वचालित रिकॉर्डिंग कर सकते हैं जो कुछ स्वचालित परीक्षण टूल के साथ आपकी सामग्री करते हैं या स्वयं को उन चीजों को लिखते हैं। आमतौर पर पूरे पृष्ठ को डीबग करना अच्छा विचार नहीं है। जब यह मॉड्यूलरली बनाया गया है तो यह आसान है। समस्या को अलग करें और यह आसान है।

डीबगिंग के लिए फ़ायरबग का उपयोग करने पर भी विचार करें, इससे आपकी मदद हो सकती है।

सुझाव: मैं निर्भर करता हूं कि आप क्या कर रहे हैं। यदि आप अत्यधिक इंटरैक्टिव पेज बना रहे हैं तो इस तरह से ऐसा करना एक अच्छा विचार हो सकता है। यह तेज़ है और AJAX अनुरोध सर्वर पर कम लोड हो सकता है। दूसरी ओर यह इस तरह से करने के लिए और अधिक समय ले रहा है।


हमारे आवेदन में हमने एक कस्टम पेज क्लास लिखा जो "पृष्ठों" के बीच स्विचिंग को संभालता है। सभी पृष्ठ में एक एक्स्टजेस कंटेनर होता है जो आपके वर्गों को लौटाता है, और हम अपने यूआरएल के अंत में # हैश वैल्यू सेट करके इतिहास रखते हैं।

इस दृष्टिकोण का उपयोग करके आप अपनी एटीजेएस लाइब्रेरी को सभी संपत्तियों के साथ एक साथ लोड करते हैं, जो प्रदर्शन के लिए भारी लाभांश के साथ-साथ आपके ऐप तरल पदार्थ को भी रखता है।


एकल पृष्ठ नहीं बल्कि कुछ पेजेड एप्लिकेशन

मैं एक जटिल परियोजना में शामिल था जो इस पर बनाया गया था:

  • Asp.net 3.5
  • डब्ल्यूसीएफ वेब सेवाएं
  • ExtJS 2.1
  • डीएएल + डीएओ के लिए .netTiers (कोडस्मिथ के साथ)
  • एसक्यूएल 2005 + ओलाप क्यूब्स (कुछ डॉन-रिमोट-ऑफ-द-नाइटमेयर वर्कअराउंड ऐप के भीतर किए जाने थे क्योंकि हमने कुछ तीसरे पक्ष के नियंत्रणों का उपयोग किया था, जो आंशिक रूप से अपडेटपेनल का समर्थन करते थे और इस बात ने अकेले ही मूलभूत प्रक्रिया को तोड़ दिया हमारा आवेदन)
  • मौजूदा एक्सटीजेएस पर कस्टम लुक और महसूस करें - यह एक्स्टजेस कॉस्टुमाइज़ेशन का सबसे कठिन हिस्सा था, इसलिए मेरा सुझाव है कि आप प्रदान की गई थीम में से किसी एक से चिपके रहें

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

यह बहुत अच्छा काम किया।

मैं शायद आज एक चीज़ बदल दूंगा : मैं Asp.net + WCF से Asp.net एमवीसी में माइग्रेट करूंगा। यह इस तरह के परिदृश्य के लिए और अधिक निर्माण है।

डिबगिंग के संबंध में हमने फ़ायरबग (फ़ायरफ़ॉक्स प्लगइन) का उपयोग बड़े पैमाने पर किसी अन्य डेवलपर की तरह किया था।

लेकिन ExtJS लाइब्रेरी का उपयोग करना एक बड़ी सफलता थी। इसने डेस्कटॉप जैसी डेटा भारी वेब एप्लिकेशन बनाने में आसानी से संभव बना दिया। यह किसी भी पेशेवर इंट्रानेट वेब अनुप्रयोग विकास के लिए एक महान एकीकृत लाइब्रेरी है। JQuery और उसके प्लगइन के साथ आप हमेशा उन प्लगइन के विभिन्न quirks के साथ अकेले छोड़ दिया जाता है जो समुदाय प्रदान करता है। ExtJS इस संबंध में बहुत एकीकृत है और बॉक्स से वास्तव में अच्छा दिखता है और महसूस करता है।


मैं ExtJS के साथ एएसपी.NET एमवीसी का उपयोग कर रहा हूँ। यह एक पेज एप्लिकेशन नहीं है, लेकिन यह करीब है, यह एक पेज ऐप की तरह लगता है।

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

IMHO;

  1. एएसपीएनटी एमवीसी मंच वेबफॉर्म मंच से बेहतर होगा।
  2. कंट्रोलर एक्शन हैंडलिंग के लिए बहुत अच्छी तरह से फिट बैठते हैं।
  3. आंशिक सामग्री एचटीएमएल सामग्री उत्पन्न करने के लिए उपयोगी हैं (मचान बहुत मदद करता है)

ExtJS

  • नेविगेशन के लिए,
  • सूची
  • खोज कर,
  • संपादन सामग्री,
  • अधिसूचना,
  • बाकी सब कुछ के लिए बहुत कुछ ...

समग्र ExtJS एक महान ढांचा है।


मुझे लगता है कि यह विचार है, किसी भी तरह से, किसी वेब वातावरण में अनुप्रयोगों की डेस्कटॉप भावना से मेल खाता है, इसका मतलब है कि लगभग सबकुछ अजाक्स के साथ काम करता है।

डिबगिंग के लिए, फायरबग आपका दोस्त है। लेकिन यह डेस्कटॉप एप्लिकेशन को डीबग करने के लिए अलग नहीं होना चाहिए, जहां बग प्राप्त करने के लिए बहुत सारे क्लिक शामिल हो सकते हैं।


आप आधुनिक AJAX- आधारित ऐप्स कर सकते हैं और अपने ऐप को गहरे लिंक करने के लिए यूआरएल हैश का उपयोग कर सकते हैं

जीमेल यह एक महान उदाहरण है कि यह कैसे काम करता है। मेरे इनबॉक्स में जाने के लिए, मैं नेविगेट करता हूं:

https://mail.google.com/mail/?shva=1#inbox

मेरे संपर्क प्रबंधक पर जाने के लिए मैं ब्राउज़ करता हूं:

https://mail.google.com/mail/?shva=1#contacts

इन दोनों "पेज" एक ही पृष्ठ पर हैं, और ऐप का उपयोग करते समय नेविगेशन वास्तव में मुझे एक अलग पृष्ठ पर रीडायरेक्ट करता है। हैश वह सब बदलता है।

जब पृष्ठ लोड होता है, तो आपको window.location.hash की जांच करने की आवश्यकता होती है और अपने ऐप के राज्य को अपडेट करने के लिए इसका उपयोग करें।


ExtJs परीक्षण के मामले में ...

यहां एक परीक्षण उपकरण है जो ExtJs घटकों का परीक्षण करता है (यह टूल ExtJs के साथ बनाया गया था!)

ExtJs का परीक्षण करने के लिए सिएस्टा परीक्षण उपकरण

मैंने व्यक्तिगत रूप से अभी तक इसका उपयोग नहीं किया है, लेकिन मैंने डेमो वीडियो पर एक नज़र डाली है और यह बहुत प्यारी लगती है!

शायद सामुदायिक सदस्यों को वैकल्पिक विकल्प पता हो सकता है जो विशेष रूप से ExtJs का परीक्षण करते हैं?

पीएस: मैं सेन्चा (एक्स्टजेस) या ब्रेंटम (सिएस्टा) से किसी भी तरह से जुड़ा हुआ नहीं हूं। मैं ग्राहक स्तर पर ExtJs का उपयोग करता हूं।






javascript ajax design extjs