2009-05-11 19 views
5

कभी-कभी मैं जावास्क्रिप्ट का उपयोग कर क्लाइंट साइड पर चीजों को करने के खिलाफ तर्क सुनता हूं। लोग कहते हैं जैसे "जावास्क्रिप्ट अक्षम है ... या धीमा"। मैं सोच रहा हूं कि क्या इस निष्कर्ष का समर्थन करने वाले वास्तविक तथ्य हैं?जावास्क्रिप्ट कितना कुशल है?

+5

अन्य क्लाइंट साइड स्क्रिप्टिंग भाषा की तुलना में "धीमा" या "अक्षम"? – Joseph

+3

"अक्षम" और "धीमी" अत्यधिक व्यक्तिपरक शब्द हैं, क्योंकि वे प्रश्न उठाते हैं, बहुत अक्षम या धीमे किसके लिए? क्या तुलना में? –

उत्तर

12

वास्तव में जावास्क्रिप्ट प्रदर्शन करने के लिए दो कारकों रहे हैं। जैसे ही आप विकसित करते हैं, अपने कोड को जितना संभव हो उतना अनुकूलित करें। आसान।

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

Coding Horror: The Great Browser JavaScript Showdown

+0

जो जेफ एटवुड द्वारा शानदार पोस्ट है। धन्यवाद। –

+6

तीन कारक! ब्राउज़र तीसरा और आमतौर पर सबसे धीमा है। याद रखें कि डोम जावास्क्रिप्ट का हिस्सा नहीं है, बल्कि ब्राउजर का हिस्सा है। – svinto

2

यह ब्राउज़र के जावास्क्रिप्ट इंजन पर बहुत निर्भर करता है।

कुल मिलाकर, यह एक पटकथा भाषा है, इसलिए यह सी ++ या अन्य संकलित भाषा के साथ-साथ नहीं करेगा। हालांकि, यह अच्छा है कि इसका उद्देश्य क्या था, और यह ड्राइव वेब पेज है।

0

अच्छा, यह निर्भर करता है। आप इसकी तुलना किस तुलना में कर रहे हैं? यह अलग ब्राउज़र के बीच बहुत अलग है।

लिखित कोड के आधार पर यह वास्तव में अच्छा प्रदर्शन कर सकता है या विपरीत हो सकता है।

आपको कुछ चीजों को करने के लिए जावास्क्रिप्ट का उपयोग करना है, उदाहरण के लिए डोम में हेरफेर करना।

0

मुझे लगता है कि ज्यादातर मामलों में यह एक पोस्ट बैक से बहुत तेज है!

+0

यदि आप कम से कम मतदान करने जा रहे हैं तो कम से कम क्यों समझाओ! – stevehipwell

0

मैं कहूंगा कि यह गलत जवाब है। आप जावास्क्रिप्ट प्रदर्शन को कैसे मापेंगे और आप तुलना के लिए उपयोग करेंगे। मुझे लगता है कि जब तक क्लाइंट साइड वेब प्रोग्रामिंग (मैं वीबीस्क्रिप्ट के बारे में बात नहीं कर रहा हूं) के लिए जावास्क्रिप्ट एकमात्र विकल्प है, तो आप वास्तव में इसकी दक्षता के बारे में कुछ भी नहीं कह सकते हैं।

+0

हाँ आप कर सकते हैं, आप यह निर्धारित कर सकते हैं कि क्लाइंट या सर्वर पर प्रसंस्करण को धक्का देना बेहतर है या नहीं। आप यह भी निर्धारित कर सकते हैं कि क्या रखना है और क्या कटौती करना है, कुछ चीजें किसी भी गति पर यानी 6 में नहीं की जा सकती हैं। – garrow

+0

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

0

यह भी निर्भर करता है कि आप अपना कोड कैसे लिखते हैं। यदि आप सर्वोत्तम अभ्यास का पालन करते हैं तो यह ठीक है और जैसा कि पहले कहा गया है, यह पोस्टबैक से बेहतर है!

  1. आपका कोड
  2. स्क्रिप्टिंग इंजन अपने कोड चल

आपका कोड के लिए सबसे आसान कारक ठीक करने के लिए है:

0

आप केवल वास्तव में एक विशेष समस्या को हल करने की कोशिश कर रहे करने के संदर्भ में इस सवाल का जवाब कर सकते हैं: आप एक अच्छे लेख चाहते हैं, लिंक की जाँच करें। एक उदाहरण पोस्ट करें और फिर हम विभिन्न तकनीकों के योग्यता पर बहस कर सकते हैं ...

0

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

1

यदि आप इसे सही तरीके से उपयोग करते हैं तो जावास्क्रिप्ट तेज़ है। अन्यथा यह बुरा व्यवहार करता है। उदाहरण: असीमित पाश आपके ब्राउज़र को लटका सकता है।(लेकिन ब्राउज़र आपको पूछेगा कि निष्पादन को रोकना है या नहीं)

+0

लॉल, उम, यह नहीं है कि सब कुछ कैसे है? यदि एक सी ++ प्रोग्राम में असीमित पाश है, तो ओएस आपको पूछेगा कि क्या आप प्रोग्राम को मारना चाहते हैं। –

+1

@ डैरेन: यदि कोई सी ++ ऐप (या कोई अन्य डेस्कटॉप ऐप) असीमित है (आमतौर पर "अनंत" कहा जाता है, नहीं?) लूप, ओएस केवल आपको इसे मारने के लिए कहेंगे यदि यह किसी तरह से गलत व्यवहार कर रहा है। आमतौर पर इसका मतलब है कि यह सिग्नल का जवाब नहीं दे रहा है। यदि कोई सिग्नल नहीं भेजा जा रहा है (किसी भी प्रकार के पिंग सिग्नल सहित), यह आपके प्रोग्राम को बाधा डाले बिना हमेशा के लिए चलाएगा। ब्राउज़र में जेएस के साथ ऐसा नहीं है। – rmeador

1

सर्वर पर बनाम क्लाइंट पर कौन से कार्यों को करने का विकल्प एक महत्वपूर्ण है, और जावास्क्रिप्ट की भाषा की एकमात्र कारक नहीं है जिस पर विचार किया जाना चाहिए।

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

क्लाइंट पर चलने वाले व्यवसाय नियम उत्सुक अंत उपयोगकर्ताओं के संपर्क में आ जाएंगे।

ग्राहक पर चलने वाले सत्यापन व्यवसाय नियमों को सर्वर पर फिर से चलाया जाना चाहिए, क्योंकि आप ऐसे वातावरण में चल रहे कोड पर विश्वास नहीं कर सकते हैं, जिसे आप नियंत्रित नहीं करते हैं।

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

0

मुझे लगता है कि लोग आपको क्या बताने की कोशिश कर रहे हैं: क्लाइंट पक्ष में सभी कोड डालने के बजाय, सर्वर पर आप क्या कर सकते हैं।

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

+0

फ्लैवियो, यह कहने का एक बेहतर तरीका है कि यूआई तर्क के लिए जेएस का उपयोग करें, व्यवसाय तर्क के लिए नहीं। एजेक्स के साथ अपने स्वयं के वेबसाइसेस के उपभोक्ता के रूप में संयोजित करें और आपके पास एक कलाकार ऐप के लिए सही औषधि है –

0

मैं एक 'संख्या लड़का' हूं, इसलिए जब कोई कहता है कि "अच्छी तरह से एक्स धीमा है" या "ज़ाहिर है, क्योंकि वाई तेज है" जो वास्तव में मेरी बकरी पाती है।

JavaScript Performance Rundown

मैं भी लगता है कि देख कार्रवाई में Dromaeo थोड़े शांत

0

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

अंगूठे का मेरा नियम यह है कि यदि आप जावास्क्रिप्ट पर भरोसा नहीं कर सकते हैं, तो सर्वर पर उतना ही करें जितना आप कर सकते हैं। यदि आप बिल्कुल जानते हैं कि जावास्क्रिप्ट चालू है, तो क्लाइंट में उतना ही करें जितना आप कर सकते हैं और आप बैंडविड्थ और सर्वर लोड पर सहेज लेंगे।

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