2015-05-07 3 views
0

Проблема, с которой я сталкиваюсь, состоит в том, что если я назову ту же диаграмму 20 раз, она замедлит диаграмму 20 раз, очень странно ...? Поэтому для каждого щелчка диаграммы замедляются еще больше, но перед вторым щелчком диаграмма работает очень быстро. Я создал диаграмму, которая просто отображает некоторые случайные сгенерированные значения и показывает их в диаграмме координат x и y (динамически).JQuery несколько вызовов снижает производительность

Есть ли что-то, что я делаю неправильно в JavaScript и JQuery ниже? Я хочу, чтобы пользователь просматривал только одну диаграмму во времени, не получая более медленную производительность, нажав на одну и ту же диаграмму?

$('[data-row]').on('click', function() { 
      var row = $(this).attr('data-row'); 
      $('.active').removeClass('active'); 
      $('#table' + row).addClass('active'); 

      if(row == 1){ 
       $.getScript("diagram1.js", table1()); 

      } else if (row == 2) { 
       $.getScript("diagram2.js", function(){}); 
       table2(); 
      } else if (row == 3) { 
       $.getScript("diagram3.js", function(){}); 
       table3(); 

     }); 

Вот список, где пользователь переходит от просмотра диаграммы по отдельности:

<div> 
    <ul class="list-group"> 
    <!--Set this inside a div to individuelly choose--> 
    <div id='list_row1' data-row="1"><li class="list-group-item">table1</li></div> 
    <div id='list_row2' data-row="2"><li class="list-group-item">table2</li></div> 
    <div id='list_row3' data-row="3"><li class="list-group-item">table3</li></div> 
    <div id='list_row4' data-row="4"><li class="list-group-item">table4</li></div> 
</div> 

Каждая диаграмма оборачивают вокруг этой структуры:

(function table1(){   
    $(document).ready(function() { 
     // table1 code content is taken away to save space in this file on stackoverflow... 
    }); 
}()); 

ответ

0

Замедление вероятно происходит в ваши внешние скрипты, которые вы загружаете несколько раз. Вместо использования getScript() вы должны просто включить содержимое этих скриптов в функции и вызвать функции.

+0

Умные слова, не могли бы вы привести пример кода? –

+0

Я не вижу код в трех файлах, которые вы вызываете, поэтому я не могу показать вам. – howderek

Смежные вопросы