2014-09-23 3 views
1

У меня проблемы с небольшим количеством кода, который я написал, который циклически проходит через массив объявлений. Функция рендеринга вызывается на интервале (настраивается, но устанавливается каждые 50 мс, чтобы помочь при отладке). Проблема в том, что, когда эта функция запускается слишком много раз, консоль аварийно завершает работу. На некоторых мобильных телефонах, устройство будет работать из памяти полностью и перезапустить себя, и я думаю, что это связано с этой функцией (консоль не откажет, если я возьму его):Что вызывает крах консоли?

var render = function(){ 
    if(ads.length < 1) 
     return; 
    if(!ads[adIndex]){ 
     adIndex = 0; 
    } 
    s = ads[adIndex].src; 
    w = ads[adIndex].width; 
    $(adContainer).html("<p>ADVERTISEMENT</p><img src = '" + s + "' width = '" + w + "'/>"); 
    adIndex++; 
}; 

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

Edit: Я звоню код вроде этого:

setInterval(function(){ 
     render(); 
    }, 50); 

И массив объявлений просто массив яваскрипта изображения() объектов.

+0

достаточно не кода, чтобы сказать. как вы называете рендер? – gdoron

+0

setInterval (функция() { render(); }, 50); Невозможно опубликовать весь код, это действительно сложный сайт, над которым я работал в течение нескольких месяцев. –

+1

, вы можете показать объект объявления. И обновите свой вопрос с помощью кода, не вставляйте в качестве комментария –

ответ

0

Я просто думаю, что проблема ниже кода.

$(adContainer) 

Вы создали объект JQuery каждый раз.

var $adContainer = $(adContainer); 
var render = function(){ 
    if(ads.length < 1) 
     return; 
    if(!ads[adIndex]){ 
     adIndex = 0; 
    } 
    s = ads[adIndex].src; 
    w = ads[adIndex].width; 
    $adContainer.html("<p>ADVERTISEMENT</p><img src = '" + s + "' width = '" + w + "'/>"); 
    adIndex++; 
}; 

И тогда я рекомендую использовать SetTimeout как этот обхвата случае

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