AJAX
मुझे लगता है कि आपका प्रश्न "मेरे वेब एप्लिकेशन को क्लाइंट साइड पर या सर्वर साइड पर HTML उत्पन्न करना चाहिए?" क्लाइंट-साइड जेनरेशन AJAX का उपयोग करके सर्वर से संपर्क करता है, हालांकि X (XML) को आमतौर पर JSON से बदल दिया गया है, लेकिन अधिकांश लोग अभी भी इसे AJAX कहते हैं क्योंकि यह बेहतर लगता है। सर्वर-साइड, सर्वर सिर्फ सर्वर पर HTML बनाता है।
मुझे XML के साथ बहुत अनुभव है और JSON के साथ लगभग कोई भी नहीं है। XML के बारे में मैं जो कुछ भी जानता हूं वह मुझे यह सुझाव देता है कि यदि संभव हो तो आप JSON का उपयोग करते हैं।
AJAX पेशेवरों:
- HTTP (एस) पर कम डेटा भेजें ताकि वे तेजी से चल सकें।
- सर्वर अनिवार्य रूप से एक वेब सेवा है ताकि अन्य लोग (या आप) अपने स्वयं के क्लाइंट लिख सकें। आपकी साइट का मोबाइल संस्करण बनाते समय यह मदद कर सकता है। इसके अलावा, कई आविष्कार उन कारणों के लिए लोकप्रिय हो जाते हैं जिनके निर्माता ने कभी इरादा नहीं किया था। आपके कोड के लिए नए उपयोग करने वाले लोगों के लिए सेवाएँ मित्रवत हैं।
- एक नए अनुप्रयोग की तरह लग रहा है
AJAX विपक्ष:
- जावास्क्रिप्ट डिबगिंग
- जटिलता?
- जावास्क्रिप्ट के साथ आप जो सामान कर सकते हैं वह अक्सर अंधे या विकलांग लोगों के उपयोग के लिए पूरी तरह से असंभव है।
- अधिक कोड कुल (आपके एम्बेडेड डिवाइस पर बड़ा समग्र संग्रहण) की आवश्यकता हो सकती है
क्लाइंट सर्वर
सभी वेब एप्लिकेशन क्लाइंट-सर्वर आर्किटेक्चर का उपयोग करते हैं। HTTP प्रोटोकॉल वेब एप्लिकेशन को इस तरह से व्यवहार करने के लिए मजबूर करता है। AJAX उस डिज़ाइन सीमा के लिए एक वर्क-अराउंड का उपयोग करता है, लेकिन HTTP का मूल अंतर्निहित मॉडल अभी भी क्लाइंट-सर्वर है। मैं वेब अनुप्रयोगों के लिए MVC लागू करने के सर्वोत्तम तरीके के बारे में पूरी बात पर नहीं लटका होगा। यदि आपको राजनीतिक कारणों से एमवीसी करना है, तो यह देखें कि रूबी / रेल कैसे करती है। वास्तव में, रेल कॉपी (या उपयोग) करने के लिए एक महान वास्तुकला है।
सेवा बनाम ऐप।
एक अच्छी सेवा एक आवेदन की तुलना में लगभग हमेशा बेहतर होती है। लेकिन एक अच्छी सेवा बनाना कठिन है! किसी सेवा के लिए अच्छी तरह से डिज़ाइन की गई युक्ति लिखने से पहले आपको आवेदन करने की आवश्यकता हो सकती है। अपने काम को और अधिक कठिन मत बनाओ, क्योंकि इसे करने की आवश्यकता है। संस्करण 1 के लिए, एक शानदार एप्लिकेशन बनाने पर ध्यान दें। जब तक आपका आवेदन अपेक्षाकृत स्थिर होता है और आपको यकीन है कि यह आपके उपयोगकर्ता की आवश्यकताओं को पूरा करता है, तब तक सेवा में रहना संभव नहीं है। गलत सेवा को बहुत पहले से डिजाइन करना समय की बर्बादी है जो आपके सेवा इंटरफ़ेस को ठीक करने की कोशिश में व्यर्थ हो जाती है, और सर्वर और क्लाइंट कोड दोनों का बड़े पैमाने पर रीफैक्टरिंग से निपटना होगा जो इसका पालन करेंगे।
सी / वेब
वाह। मैंने वेब डेवलपमेंट पर स्विच करने से पहले 3 साल तक सी और असेंबली में काम किया। मैं एक ख़राब भाषा के बारे में नहीं सोच सकता - विशेष रूप से सुरक्षा की दृष्टि से - में एक वेब एप्लिकेशन लिखने के लिए। इनपुट सत्यापन और आउटपुट से बचना बहुत महत्वपूर्ण है ... SANS हर साल सबसे आम त्रुटियों की एक सूची जारी करता है। बफर ओवरफ्लो, इंजेक्शन, क्रॉस-साइट समस्याएं (अनुचित आउटपुट एन्कोडिंग) ... ये सभी त्रुटियां सी या असेंबली में बनाने में आसान हैं। जावा की तरह कम से कम एक भाषा में एक स्ट्रिंग है जो अतिप्रवाह के लिए प्रतिरक्षा है और एक अपवाद हैंडलिंग तंत्र है जो आमतौर पर ऑफ-बाय-वन त्रुटियों को दुर्भावनापूर्ण कोड को सिस्टम मेमोरी तक पहुंचने से रोकता है। अंतर्राष्ट्रीय वर्ण सेटों का उपयोग करने का उल्लेख नहीं करना ( संभव हो तो UTF-8 का उपयोग करें )।
यदि आपको मेमोरी या फर्मवेयर कारणों के लिए C का उपयोग करने की आवश्यकता है, तो आपको यही करना होगा। बस थोड़ा सावधान रहें!
ब्राउज़र का समर्थन
वेब एप्लिकेशन बनाने का पहला चरण यह पता लगाना है कि आपके क्लाइंट द्वारा कौन से ब्राउज़र का उपयोग किया जाएगा ? W3Schools और विकिपीडिया दोनों सामान्य आँकड़ों के अच्छे स्रोत हैं, लेकिन YMMV।
जहां मैं अभी काम करता हूं, हम वर्तमान में मान्य करते हैं कि हमारा आवेदन केवल वैध XHTML 1.0 संक्रमणकालीन HTML बनाता है। हम IE में क्वर्क्स मोड से बचने के लिए आवश्यक विशिष्ट डॉक्टाइप और फ़ॉर्मेटिंग का भी उपयोग करते हैं, जो क्रॉस-ब्राउज़र HTML को लिखने में आसान बनाता है ( मेरे ब्लॉग पर सुझाव देखें )। हम आईई के नवीनतम 3 संस्करणों, प्लस फ़ायरफ़ॉक्स और क्रोम पर विंडोज और लिनक्स पर परीक्षण करते हैं (सफारी क्रोम के समान रेंडरिंग इंजन का उपयोग करता है)। उस सत्यापन और परीक्षण के साथ, हमारे आवेदन ब्लैकबेरी को छोड़कर हर जगह (विंडोज, मैक, लिनक्स, आईफोन, एंड्रॉइड, आदि) में बहुत काम करता है।
ब्लैकबेरी का जावास्क्रिप्ट के साथ वास्तविक ब्राउज़र कभी नहीं था, इसलिए हम इसका समर्थन नहीं करते हैं। ब्लैकबेरी उपयोगकर्ताओं का उपयोग वास्तविक वेब ब्राउज़र न करने के लिए किया जाता है, इसलिए वे शिकायत नहीं करते हैं। शायद यह बदल रहा है? मैं कुछ ग्राहकों से पूछने की कोशिश करूंगा कि वे कौन से ब्राउज़र का उपयोग कर रहे हैं और उन ब्राउज़रों के साथ परीक्षण करना सुनिश्चित करें।
सारांश
सभी वेब साइट HTML और HTTP पर बनी हैं। जब आप अपना आवेदन कर रहे हों तो इन तकनीकों के लिए एक अच्छा संदर्भ रखें। एक एप्लिकेशन बनाने के दौरान, यहां तक कि टूलकिट के साथ, आप उन मुद्दों पर चलेंगे, जिन्हें हल करने के लिए इन तकनीकों को एक बुनियादी समझ की आवश्यकता होती है।
आपको शायद सीएसएस के साथ सहज होने की भी आवश्यकता है, और कुछ ऐसा बनाने के लिए छवि संपीड़न जो कि सभ्य दिखता है और जल्दी से प्रतिक्रिया करता है। जावास्क्रिप्ट, वेब-सर्वर और ब्राउज़र ज्ञान के अतिरिक्त क्षेत्र हैं जिनकी आपको अंततः आवश्यकता होगी।
यदि आप सर्वर-साइड पर अपना HTML बनाते हैं, तो आपका कोड आधार संभवतः छोटा होगा और आपको जावास्क्रिप्ट सीखने की आवश्यकता नहीं होगी। सर्वर-साइड मॉडल का मतलब है कि आपके प्रोग्रामर (सी?) कोड लिखेंगे जो HTML उत्पन्न करता है जिसे वे क्लाइंट को भेजे जाने से पहले सीधे देख सकते हैं। AJAX मॉडल का अर्थ है कि आपके प्रोग्रामर HTML लिखने वाले जावास्क्रिप्ट को लिख रहे होंगे। मुझे एक ब्राउज़र के भीतर जावास्क्रिप्ट द्वारा उत्पन्न HTML कोड को मान्य करने या देखने के लिए बहुत सारे टूल के बारे में पता नहीं है, जिससे इसे सही ढंग से प्रोग्राम करना मुश्किल हो जाता है।
जहां मैं अब काम करता हूं, हम एक हाइब्रिड दृष्टिकोण का उपयोग करते हैं जिसमें कभी-कभी जावा कोड शामिल होता है जो जावास्क्रिप्ट उत्पन्न करता है जो HTML उत्पन्न करता है। यदि आप लोग वेब विकास के लिए नए हैं, तो यह शुरू करने की जगह नहीं है। मुझे लगता है कि मुझे यह कहना होगा कि जब तक आपके पास AJAX मॉडल का उपयोग करने के लिए बाध्यकारी कारण नहीं होंगे, मैं पुराने सर्वर-साइड- HTML- पीढ़ी मॉडल के साथ शुरू करूंगा और देखूंगा कि यह आपको कितनी दूर जाता है।