清除浏览器中的内存

发布于 2024-12-12 01:54:17 字数 261 浏览 0 评论 0原文

我有一个图像旋转器,它为新幻灯片创建一个 div,隐藏当前幻灯片,显示新的 div,并删除隐藏的 div。 所有这些都是使用 jquery 完成的,我使用此代码来删除我不再需要的幻灯片:

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

每张幻灯片后内存仍在增加。 关于如何有效清除内存有什么想法吗?

I have an image rotator that creates a div for a new slide, hides the current slide, shows the new div, and removes the hidden div.
All this is done with jquery and I'm using this code to remove the slides I don't need anymore:

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

The memory is still increasing after each slide.
Any ideeas about how can I efficiently clear the memory?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

路还长,别太狂 2024-12-19 01:54:17

对不同的幻灯片使用不同的元素并不明智。您应该使用两个元素来制作淡入淡出的幻灯片。这是我前段时间写的一段代码:

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()

It's not smart to use different elements for different slides. You should use two elements for a fading slideshow. This is a code I wrote some time ago:

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()
橘味果▽酱 2024-12-19 01:54:17

我想出的最佳解决方案是在删除元素之前清除 html 内容。

例如:

myDiv.html("");
myDiv.remove();

The best solution I've came up with was to clear the html content before I remove the element.

For example:

myDiv.html("");
myDiv.remove();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文