Очистка памяти в браузерах - PullRequest
1 голос
/ 25 октября 2011

У меня есть вращатель изображения, который создает div для нового слайда, скрывает текущий слайд, показывает новый div и удаляет скрытый div.Все это делается с помощью jquery, и я использую этот код для удаления слайдов, которые мне больше не нужны:

var last = $("#item_" + lastSlide + "_" + idSuffix);
last.empty();
last.remove();
last = null;

Память все еще увеличивается после каждого слайда.Любые идеи о том, как я могу эффективно очистить память?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2012

Лучшее решение, которое я придумала, - очистить содержимое html перед удалением элемента.

Например:

myDiv.html("");
myDiv.remove();
0 голосов
/ 26 октября 2011

Разумно использовать разные элементы для разных слайдов. Вы должны использовать два элемента для затухающего слайд-шоу. Это код, который я написал некоторое время назад:

el = function(q) {return document.getElementById(q)};

var slides=["logo.jpg","avond.jpg","bar.jpg","buitencloseup.jpg","servet.jpg","spelcomputers.jpg","tafelaanbar.jpg","tafelsbuiten.jpg"],
Math.floor(Math.random()*slides.length),
highimg=el("highimg"),
lowimg=el("lowimg"),
fade,
changeslide=function() {
    lowimg.style.backgroundImage=highimg.style.backgroundImage
    highimg.style.backgroundImage="url(img/slideshow/"+(slides[++_src]||slides[_src=0])+")"
    var time=highimg.style.opacity=0;
    highimg.style.filter="alpha(opacity=0)"

    if (fade)
    clearInterval(fade)

    fade=setInterval(function(){
        if(highimg.style.opacity<1)
        highimg.style.filter="alpha(opacity="+(highimg.style.opacity=time+=1/40)*100+")"
        else
        {
            highimg.style.filter="alpha(opacity=100)";
            highimg.style.opacity=1
            clearInterval(fade);
        }
    },25)
}
interval=setInterval(changeslide,10000)
highimg.onclick = changeslide
changeslide()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...