2015-06-10 2 views
0

Мой вопрос связан с оптимизацией кода javascript, чтобы быть более эффективным.Динамически изменяющаяся функция javascript для эффективности

У меня есть функция, которая вызывается часто, но весь код внутри только должен был быть вызван один раз, например, так:

function removeBlankCanvas() { 
    if (--numberOfChartsStillLoading == 0) { 
     //do stuff 
    } 
} 

Это прекрасно работает, но функция до сих пор называется бесчисленное количество раз после того, как numberOfChartsStillLoading 0, и я знаю, что он больше никогда не будет 0. Поэтому я думаю о том, чтобы сделать что-то вроде этого:

function removeBlankCanvas() { 
    if (--numberOfChartsStillLoading == 0) { 
     //do stuff 

     removeBlankCanvas = function() { 
      return true; 
     } 
    } 
} 

Это может быть более эффективный код? Например, если функция была вызвана миллионы раз? Я прошу строго ради любопытства.

ответ

2

Ваше узкое место в производительности вряд ли будет простым утверждением if.

Этот трюк может на самом деле вызвать неожиданный результат, поскольку функции неизменяемы, и вы, скорее всего, получите обратные вызовы, которые будут содержать ссылку на исходную функцию, даже после того, как вы изменили ссылку на имя на другую функцию.

Мои 2 цента: найти реальные проблемы с производительностью для оптимизации.

0

Я думаю, что вы можете создать пользовательское событие и подключиться к вызывающему. Вы можете удалить событие от вызывающего абонента на основе любого условия, которое вы хотите.

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