2009-04-03 17 views
5

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

मैं जो करना चाहता हूं वह जावास्क्रिप्ट में स्क्रैच से मध्यम आकार की तालिका बना रहा है। कहें, 300 पंक्तियां, प्रत्येक 10 कोशिकाएं। ऐसा करने के लिए मेरे कंप्यूटर पर लगभग 5-6 सेकंड लगते हैं। ठीक है, दिया, यह एक 5 साल पुराना रिग है, लेकिन यह अभी भी बहुत अधिक है।

<html> 
    <body> 
    <script type="text/javascript"> 
     function MakeTable(parent) 
     { 
     var i, j; 
     var table = document.createElement('table'); 
     var insertRow = table.insertRow; 
     for (i = 0; i < 300; i++) 
     { 
      var row = insertRow(-1); 
      for (j = 0; j < 10; j++) 
      { 
      var cell = row.insertCell(-1); 
      cell.innerHTML = i + ' - ' + j; 
      } 
     } 
     parent.appendChild(table); 
     } 
    </script> 
    <div onclick="MakeTable(this);">Click Me!</div> 
    </body> 
</html> 

जोड़ा गया: यहाँ मेरी डमी कोड है हम्म, जाहिरा तौर पर स्ट्रिंग-संयोजन (array.join के साथ) जाने के लिए एक ही रास्ता है। खैर, उदास, ज़ाहिर है। यह "उचित" डोम-रास्ता करने की उम्मीद कर रहा था। :)

उत्तर

4

यहाँ एक दिलचस्प लिंक मैंने पाया कि जब इस पर एक जवाब की तलाश में है।
उनके परीक्षणों के अनुसार, स्ट्रिंग का उपयोग डीओएम/टेबल तत्वों का उपयोग करने से कहीं अधिक तेज़ है। http://www.quirksmode.org/dom/innerhtml.htm एल

-2

आप की कोशिश कर सकते 'गूंथा हुआ आटा के डिवाइस': कोड कई बार दोहराते हुए एक पाश तनाव:

for (var i = 0; i < count/4; i++) { 
    doSomething(); 
    doSomething(); 
    doSomething(); 
    doSomething(); 
} 

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

यह भी देखें: पेज पाँच अलग अलग लिपियों/तरीकों का उपयोग करता तालिका जनरेट किए जाने: http://www.websiteoptimization.com/speed/10/10-3.html

+0

डब्ल्यूटीएफ? आप सरणी के अंतिम तत्व खो रहे हैं ... –

+0

यही कारण है कि मैंने कहा "स्पष्ट रूप से यह 4 से विभाजित होने पर बाकी को छोड़ देता है" .. –

1

आईई के प्रदर्शन मुद्दों के मुख्य कारणों में से एक डीओएम ऑपरेशंस हैं। आप अपने डीओएम संचालन को यथासंभव कुशलता से करना चाहते हैं। इसमें आपकी स्थिति (बेंचमार्क!) के आधार पर शामिल हो सकते हैं:

  • आपकी डीओएम संरचना का ऑफ़लाइन निर्माण; दस्तावेज़ के बाहर शीर्ष स्तर तत्व को बनाए रखें (बनाएं, लेकिन संलग्न न करें), इसे तैयार करने के दौरान दस्तावेज़ में इसे जोड़ने के बजाय, प्रत्येक तत्व को डीओएम में जोड़ने के बजाय
  • डीओएम मैनिपुलेशन
के बजाय आंतरिक HTML लिखें
+0

पहली युक्ति पहले से मौजूद है। देखें - तालिका को अंत में डोम में जोड़ा जाता है। अब मैं आंतरिक HTML की खोज कर रहा हूं और यह वास्तव में तेज़ तरीका प्रतीत होता है। –

+0

हां, मुझे इसका उल्लेख करना चाहिए था। हालांकि यह हमेशा तेज नहीं होता है, इसलिए मैं 'बेंचमार्क' का उल्लेख करना चाहता था! अंश :-) –

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