AJAX बड़े पैमाने पर सर्वर के प्रदर्शन में सुधार करेगा?


10

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

जवाबों:


14

यह इस बात पर निर्भर करता है कि आप क्या कर रहे हैं और कैसे कर रहे हैं।

  • यदि आप AJAX अनुरोधों के साथ पूर्ण पृष्ठ लोड की जगह ले रहे हैं (यानी केवल AJAX कर रहा है जब कोई उपयोगकर्ता पूर्ण पृष्ठ लोड होता है पर क्लिक करता है) तो AJAX सर्वर लोड को कम कर देगा क्योंकि आप (संभवतः) कम प्रसंस्करण कर रहे हैं और कम वापसी कर रहे हैं डेटा।

  • दूसरी ओर, यदि आप ऑटो-अपडेट प्रकार AJAX जोड़ रहे हैं जो हर कुछ सेकंड में सर्वर को प्रदूषित करता है तो वह उपयोगकर्ता के आधार पर लोड बढ़ा सकता है (यदि उपयोगकर्ता मैन्युअल रूप से ताज़ा करने के लिए उपयोगकर्ता F5 को दबाए रखता है तो यह सर्वर लोड को बढ़ा नहीं सकता है, लेकिन ज्यादातर लोग आम तौर पर घंटों तक ऐसा नहीं करते हैं)

  • एक और AJAX ऑप्टिमाइज़ेशन केवल अधिक डेटा लोड करने के लिए है जैसे आप स्क्रॉल करते हैं। उस स्थिति में, यदि उपयोगकर्ता सभी तरह से नीचे स्क्रॉल नहीं करता है, तो वह बेकार हो जाता है।

वास्तव में कार्यान्वयन वास्तव में किसी भी तरह से परिणाम को तिरछा कर सकता है, ये विशिष्ट परिणाम हैं जो उचित रूप से अच्छा कार्यान्वयन मानते हैं।


यहाँ असली सवाल यह है कि जब आप चीजों को करने के AJAX के तरीके पर जाते हैं तो क्या बदलाव आता है? क्या आप उस काम को खत्म करने में सक्षम हैं जो एजेक्स पर जाने से पहले बर्बाद हो रहा था, या केवल इसे छोटे टुकड़ों में तोड़ रहा था? (और इस प्रक्रिया में ओवरहेड जोड़ना)
स्प्लिंटरलिटी

3

बेशक यह सर्वर लोड को कम करने के लिए काम करता है। पर देखो इस प्रस्तुति @ jsconf'09 - के लिए कैसे फेसबुक ajax इस्तेमाल किया है कि क्या करना है।

अजाक्स async है। सर्वर संचार - और आप इसे असंख्य तरीकों से उपयोग कर सकते हैं। लोग साधारण JSON को वास्तविक-समय वेब पर लोड करने के लिए उपयोग करते हैं, और बीच में सब कुछ।

याद रखें - वास्तविक चुनौती क्लाइंट और सर्वर के बीच संतुलन है। प्रत्येक पार्टी को ऐसा करने के लिए प्रयास करें कि यह इस तरह से काम करे कि सिस्टम अनुकूलित हो और आपको पेरिसेड रिस्पांसिबिलिटी और वास्तविक गति के स्पष्ट लाभ मिलें।


3

ऐसे अन्य कारक हैं जिन पर आप विचार नहीं कर रहे हैं - ज्यादातर मामलों में, AJAX सर्वर लोड बढ़ाएगा। एक विशिष्ट, गैर-अजाक्स परिदृश्य में, एक उपयोगकर्ता हर कुछ सेकंड या कुछ मिनटों में एक बड़ा पृष्ठ लोड करता है। हां, वह एकल पृष्ठ सर्वर के लिए थोड़ा अधिक काम है, लेकिन अन्य अनुरोधों को पुनर्प्राप्त करने और उनकी सेवा करने के लिए अनुरोधों के बीच बहुत समय है। एक AJAXified परिदृश्य में, उस एकल पृष्ठ लोड पर अब दर्जनों छोटे हिट हैं, जो लगातार सर्वर को हथौड़ा कर रहे हैं और प्रतिक्रियाओं की प्रतीक्षा कर रहे हैं।

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

यहाँ एक उदाहरण है कि कैसे अजाक्स सर्वर पर तेजी से वास्तविक रूप से बदसूरत हो सकता है। चलो एक विशिष्ट "कार्यकारी डैशबोर्ड" लेते हैं जो विजेट के लिए 4 स्लॉट्स की सुविधा देता है। मान लीजिए कि सीईओ को दाईं ओर एक पूर्ण बिक्री रिपोर्ट पसंद है, मध्य में कमाई करने वालों की शीर्ष 10 सूची और दाईं ओर एक कंपनी शेयर मूल्य रिपोर्ट। और मान लें कि हम इसे सरल अजाक्स रिमोट अनुरोध के माध्यम से करने जा रहे हैं। स्टाइलशीट, चित्र और अन्य परिसंपत्तियों को ध्यान में रखे बिना, आपके पेज को सर्वर के खिलाफ अब 4 HTTP राउंड ट्रिप (मुख्य पृष्ठ, डैशबोर्ड की प्रत्येक रिपोर्ट) की आवश्यकता होती है। इनमें से प्रत्येक को निष्पादित करने के लिए एक पूर्ण वेब स्टैक की आवश्यकता होती है - आप डेटाबेस को हिट करने और अपने वेब फ्रेमवर्क का उपयोग करके HTML रेंडर करने जा रहे हैं, है ना? अब एकल सीईओ को 2000 दूरस्थ उपयोगकर्ताओं से गुणा करें, जिनमें से कुछ के पास धब्बेदार कनेक्शन हैं।

इसके विपरीत, आपके पास एक एकल सर्वर-साइड पेज हो सकता है जो रिपोर्ट्स को रेंडर करने के लिए HTML कंकाल और साथ ही डेटा (इन-पेज JSON में शामिल) लौटाता है। वेब सर्वर पर एकल, बड़ा कनेक्शन लेकिन कम धड़कन क्योंकि आप 4 अनुरोधों को संभाल नहीं रहे हैं और 4 पाइपलाइनों को कताई कर रहे हैं, आदि।


1
क्या आप एक छोटे से अनुरोध का उदाहरण दे सकते हैं जिसकी आपको AJAX में आवश्यकता होगी जो आपको अन्यथा नहीं चाहिए?
झॉकिंग

1
ज़रूर - कभी ध्यान दें कि कैसे, इस साइट पर, यह आपको बता सकता है कि क्या किसी ने पहले से ही एक सवाल का जवाब दिया है? यह एक छोटे से अजाक्स अनुरोध के माध्यम से पूरा किया जाता है। । ।
व्याट बार्नेट

@WyattBarnett AJAX का मतलब जरूरी नहीं है कि मतदान हो। आप बस आंशिक पृष्ठ लोड के साथ पूर्ण पृष्ठ लोड की जगह ले सकते हैं। कई मामलों में यह सर्वर लोड बढ़ा सकता है लेकिन मुझे नहीं लगता कि यह "अधिकांश मामलों" में सच है।
डेवि 8

हम्म, अच्छी तरह से वह उदाहरण मुझे कुछ और पसंद है जैसे कि आप AJAX में कर सकते हैं जो आप अन्यथा नहीं कर सकते हैं, न कि किसी ऐसी चीज के लिए जिसे अन्यथा के लिए अधिक सर्वर अनुरोध की आवश्यकता होती है। मुझे लगता है कि ओपी अस्पष्ट था अगर उसका मतलब "और अधिक प्रदर्शन करते समय सटीक एक ही बात" या अगर उसका मतलब है "AJAX का पूरा फायदा उठाते समय अधिक प्रदर्शन"
झूपिंग

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

2

यदि आप AJAX का उपयोग उस कार्य को बदलने के लिए कर रहे हैं जो सर्वर अन्यथा कर रहा होगा तो हाँ जो सर्वर कार्यक्षमता को बेहतर करेगा। हालाँकि, आप चीजों को डिज़ाइन कर सकते हैं ताकि सर्वर अभी भी उतना ही कर रहा है और अब जो कुछ AJAX के साथ हो रहा है वह सबसे ऊपर है जो सर्वर पहले से कर रहा था।

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


0

यदि HTML रेंडरिंग आपके एप्लिकेशन सर्वर के प्रदर्शन प्रोफ़ाइल का एक बड़ा हिस्सा है, तो क्लाइंट को HTML रेंडरिंग एप्लिकेशन सर्वर पर प्रदर्शन जीत हो सकती है।

हालाँकि, यदि HTML रेंडरिंग आपके एप्लिकेशन सर्वर के प्रदर्शन प्रोफ़ाइल का एक छोटा सा हिस्सा है, तो अधिक अनुरोधों का मतलब आमतौर पर स्टैक के माध्यम से अधिक यात्राएं, अधिक क्वेरीज़, एप्लिकेशन सर्वर पर सब कुछ, एक प्रदर्शन हानि होगा।

बेशक, आपके विशेष मामले में जानने का एकमात्र तरीका इसे आज़माना है।


1
मुझे किसी भी उदाहरण के बारे में सोचने में परेशानी हो रही है, जहां AJAX का उपयोग करने से AJAX के बिना एक ही काम करने से अधिक अनुरोध होगा। क्या आप एक उदाहरण दे सकते हैं?
16

1
HTML हमेशा क्लाइंट की ओर से प्रदान की जाती है।
जोनास

1
संभवतः वह चूक गया और "हेरफेर" और "रेंडरिंग" का मतलब नहीं था
17

व्यू / टेम्प्लेट से शुरू करके, इसे चर के साथ जोड़कर, और इसमें से कच्चे HTML को रेंडर किया गया।
19 फरवरी को yfeldblum

AJAX के मामलों में AJAX के बिना एक ही काम करने की तुलना में अधिक अनुरोधों का कारण होगा: जैसे आपके मुख्य लेआउट में "छेद" हैं, लेकिन उन छेदों को ब्राउज़र में वितरित किया जाता है, और AJAX का उपयोग करके उन छेदों को "भरा" किया जाता है। उदाहरण के लिए Facebook देखें।
yfeldblum

0

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

यदि आपका सर्वर ओवरवर्क हो गया है तो आपको यह पता लगाने की आवश्यकता है कि क्यों।

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

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

और कुछ समय अजाक्स मदद करेगा। जब आपके पास डायनामिक डेटा के साथ जटिल रूप होते हैं तो आज दिन जीतता है। लेकिन अगर आप प्रश्न जटिल हैं और दौड़ने में लंबा समय लेते हैं तो ajax अभी भी आपकी समस्या का समाधान नहीं करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.