2010-04-06 11 views
10

jQuery ajax कॉल के रूप में लाभ और jQuery के साथ ajax कॉल करने का नुकसान में से कुछ पता करने के लिए जीवन वास्तव में बिना एक पृष्ठ ताज़ा शांत ... लेकिन अभी भी रुचि बनाता है ....jquery का उपयोग करके AJAX कॉल करने के फायदे और नुकसान क्या हैं?

मैं सभी के लिए ajax कॉल के रूप में उपयोग कर रहा हूँ मेरी जोड़ें, संपादित करें और हटाएँ संचालन मेरी वेबसाइट में यह अब तक बहुत अच्छी तरह से काम करता है ... फिर भी नुकसान के बारे में जानते हुए भी जीवन तैनाती के दौरान आसान बनाना होगा ....

+0

आप सामान्य रूप में ajax * jQuery के साथ * ajax के बारे में पूछ रहे हैं विशेष रूप से, या? – bzlm

+0

'jQuery के साथ AJAX केवल .. –

उत्तर

8

AJAX का सबसे अच्छा उपयोग जहां यह छोटे पेलोड भेजने के लिए प्रयोग किया जाता है। ये रहा एक सरल उदाहरण।

मैं एक पृष्ठ लोड करता हूं जिसमें स्टॉक के बारे में जानकारी होती है। इसमें ग्राफ, चार्ट, कंपनी की जानकारी है और यह शेयर-मूल्य भी प्रदर्शित करता है। प्रत्येक 30 सेकंड, मैं एक AJAX अनुरोध करता हूं जो अद्यतन शेयर-मूल्य प्राप्त करता है और इसे पृष्ठ पर बदल देता है।

AJAX के बिना, मैं हर 30 सेकंड में पूरे पृष्ठ को रीफ्रेश करने का निर्णय ले सकता हूं, लेकिन AJAX के साथ, मैं केवल थोड़ी सी जानकारी प्राप्त करने के लिए हल्का अनुरोध कर सकता हूं।

फॉर्म जमा करने के लिए AJAX का उपयोग करना हमेशा सर्वोत्तम शर्त नहीं है। आम तौर पर फॉर्म को सामान्य रूप से पोस्ट करने पर आपको स्पष्ट लाभ नहीं देने के अलावा, आप ब्राउज़र इतिहास जैसे सम्मेलनों को तोड़ते हैं (हालांकि कुछ ब्राउज़रों में अब जावास्क्रिप्ट "इतिहास" इतिहास में पृष्ठों के रूप में शामिल हैं)।

AJAX का उपयोग करते समय, आपको कुछ गलत होने पर उपयोगकर्ता को बताने का कार्य संभालना होगा। आप त्रुटि पर क्या होना चाहिए यह निर्दिष्ट करके jQuery के साथ ऐसा कर सकते हैं, लेकिन बहुत से लोग ऐसा करना भूल जाते हैं और अंतिम उपयोगकर्ता किसी भी समस्या से प्रसन्नता से अनजान है।

किसी भी जावास्क्रिप्ट त्रुटियों के लिए बाहर देखने के लिए अन्य समस्याएं हैं जो आपकी घटनाओं को फायरिंग से रोक सकती हैं - या यदि जावास्क्रिप्ट अक्षम है, तो किसी भी मामले में यह सुनिश्चित करने के लिए कि AJAX कोड जोड़ने से पहले फ़ॉर्म सामान्य रूप से सबमिट हो सकता है, यह सबसे सुरक्षित विकल्प है।

7

प्रो:

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

एसिंक्रोनस अनुरोधों का उपयोग क्लाइंट के वेब ब्राउज़र यूआई को अधिक इंटरैक्टिव होने और इनपुट के लिए त्वरित प्रतिक्रिया देने की अनुमति देता है, और पृष्ठों के अनुभागों को भी अलग-अलग लोड किया जा सकता है। उपयोगकर्ता एप्लिकेशन को तेजी से या अधिक उत्तरदायी होने के लिए देख सकते हैं, भले ही एप्लिकेशन सर्वर के पक्ष में नहीं बदला गया हो।

अजाक्स का उपयोग सर्वर से कनेक्शन को कम कर सकता है, क्योंकि स्क्रिप्ट और स्टाइल शीट्स को केवल एक बार अनुरोध किया जाना चाहिए। [12]

राज्य को पूरे वेबसाइट पर बनाए रखा जा सकता है। जावास्क्रिप्ट चर बने रहेंगे क्योंकि मुख्य कंटेनर पेज को पुनः लोड नहीं किया जाना चाहिए।

CON:

> उनके गतिशील प्रकृति के कारण, अजाक्स इंटरफेस अक्सर जब स्थैतिक पृष्ठों की तुलना में विकसित करने के लिए कड़ी मेहनत कर रहे।

लगातार अजाक्स अनुरोधों का उपयोग करके गतिशील रूप से बनाए गए पृष्ठ स्वचालित रूप से ब्राउज़र के इतिहास इंजन के साथ स्वयं पंजीकृत नहीं होते हैं, इसलिए ब्राउज़र के "बैक" बटन पर क्लिक करने से उपयोगकर्ता अजाक्स-सक्षम पृष्ठ की पूर्व स्थिति में वापस नहीं आ सकता है, लेकिन इसके बदले में वापस आ सकता है उन्हें पहले अंतिम पृष्ठ पर देखा गया था। वर्कअराउंड में ब्राउज़र के इतिहास में बदलावों को ट्रिगर करने और यूआरएल के एंकर हिस्से को बदलने के लिए अदृश्य IFrames का उपयोग शामिल है (# के बाद) जब अजाक्स चलाया जाता है और परिवर्तनों के लिए इसकी निगरानी करता है।

गतिशील वेब पेज अपडेट उपयोगकर्ता के लिए किसी विशेष स्थिति को बुकमार्क करना मुश्किल बनाता है। इस समस्या के समाधान मौजूद हैं, जिनमें से कई यूआरएल खंड पहचानकर्ता ('#' के बाद एक यूआरएल का हिस्सा) का उपयोग करते हैं, और उपयोगकर्ताओं को किसी दिए गए राज्य में आवेदन करने की अनुमति देते हैं।

क्योंकि अधिकांश वेब क्रॉलर जावास्क्रिप्ट कोड निष्पादित नहीं करते हैं, सार्वजनिक रूप से अनुक्रमित वेब अनुप्रयोगों को सामान्य रूप से अजाक्स के साथ पुनर्प्राप्त करने के लिए वैकल्पिक साधन प्रदान करना चाहिए, ताकि खोज इंजन इसे अनुक्रमित कर सकें।

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

वही मूल नीति कुछ अजाक्स तकनीकों को डोमेन पर उपयोग करने से रोकती है, हालांकि डब्ल्यू 3 सी में XMLHttpRequest ऑब्जेक्ट का एक मसौदा है जो इस कार्यक्षमता को सक्षम करेगा।

अन्य वेब प्रौद्योगिकियों की तरह, अजाक्स के पास भेद्यता का अपना सेट है जिसे डेवलपर्स को संबोधित करना चाहिए। अन्य वेब प्रौद्योगिकियों से परिचित डेवलपर्स को सुरक्षित अजाक्स अनुप्रयोगों को लिखने के लिए नए परीक्षण और कोडिंग विधियों को सीखना पड़ सकता है।

अजाक्स संचालित इंटरफेस वेब सर्वर और उनके बैक-एंड (डेटाबेस, या अन्य) में उपयोगकर्ता द्वारा जेनरेट किए गए अनुरोधों की संख्या में नाटकीय रूप से वृद्धि कर सकता है। इससे अधिक प्रतिक्रिया समय और/या अतिरिक्त हार्डवेयर आवश्यकताएं हो सकती हैं।

wikipedia.org

+1

उन सभी को फायदे जैसे ध्वनि ... – mpen

5

ठीक है, jAndy के फायदे कम हो गए हैं, और आप पहले से ही फायदे से अवगत हैं, या आप इसका उपयोग नहीं करेंगे।

नकारात्मकता यह है कि यदि आप पूरे पृष्ठों में लोड हो रहे हैं तो यह आपके ब्राउज़र के बैक बटन को मक्स कर देता है (हाँ, यह कुछ और जेएस जादूगर के माध्यम से भी तय किया जा सकता है)। लेकिन अगर आपकी पूरी साइट AJAX पर निर्भर करती है, तो शायद यह जेएस अक्षम के साथ काम नहीं करेगा। इसके अलावा, यह बहुत अच्छे यूआरएल उत्पन्न नहीं करता है। यदि आप अपने मित्र को AJAX- गहन साइट में किसी विशिष्ट पृष्ठ से लिंक करना चाहते हैं, और यह मानते हुए कि आपने अपना जेएस जादूगर किया है, तो यह वास्तव में संभव है (# वर्ण के बाद यूआरएल को संशोधित करना), इसे अभी भी मुख्य लोड करना है पहले पृष्ठ, और उसके बाद जेएस को किक करने के लिए प्रतीक्षा करें इससे पहले कि आप वास्तव में रुचि रखने वाली सामग्री में AJAX-load कर सकें। मुझे लगता है कि यह वास्तव में धीमा माना गया प्रतिक्रिया समय देता है, जिसे मैं बिल्कुल पसंद नहीं करता। मुझे AJAX पसंद है, लेकिन मुझे इसे पूर्ण-पृष्ठ की सामग्री के लिए पसंद नहीं है।

2

वास्तविक गड़बड़ी में समाप्त होने वाले ब्राउज़र और विनिर्देश के बीच लड़ाई का लंबा इतिहास। हम डेवलपर के रूप में इसे समझते हैं जब हमें एहसास होता है कि हम प्रोग्रामिंग व्यवसाय तर्क/समस्या को हल करने के बजाय क्रॉस ब्राउज़र विशिष्ट मुद्दों को हल करने में अधिक समय व्यतीत कर रहे हैं।

+ ve

  1. नहीं पार ब्राउज़र दर्द
  2. यू भरोसा कर सकते हैं कि अच्छा डेवलपर बिताया है
  3. यू साइड इफेक्ट पर नहीं वास्तविक समस्या पर अधिक ध्यान केंद्रित कर सकते हैं और वहाँ समय और ऊर्जा बनाने पुस्तकालय
  4. एपीआई अच्छा है। अगर कोई यूआई डेवलपर को बताता है कि AJAX, HTTP, JavaScrtip bla bla bla ........ OFFFF सरल फ़ंक्शन हमेशा महान होता है Ajax.call (url, callbackfunction, param)। यही वह समय है जिसे हम ज्यादातर बार ढूंढ रहे हैं।
  5. महान समय की बचत :) और यू दलों कोई देर रात काम
का आनंद ले सकते

-ve

  1. यू सिर दर्द से चिकनी सतह और बचत त्वचा पर प्रदर्शन करेंगे कि सॉफ्टवेयर के रूप में हम के लिए अच्छे हैं इंजीनियरों
  2. यदि आप कुछ प्रोफाइलर का उपयोग करते हैं तो आपको उस फ़ंक्शन के अंदर कुछ दर्जनों कॉल मिलेगी जो लाइब्रेरी का उपयोग करके चीजें करने के लिए मिलती हैं जो कुछ मिलिसेकंड्स का उपभोग करती है। लेकिन यह वास्तव में एक बड़ा सौदा नहीं है जब हम विकास
  3. के दौरान सहेजे गए समय पर विचार करते हैं, आपको लाइब्रेरी पर विश्वास करना है कि वे क्या कहते हैं। तो मैं केवल अच्छे लोगों से चिपकने का सुझाव दूंगा। और हाँ यू बेहतरीन

आशा है कि मदद की से एक का उपयोग हो गुए

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