JavaScript内存问题

标签 javascript html jquery

假设在我的 web 应用程序启动之前,我想最初创建所有 dom 元素并将它们存储在一些预加载的数组中。像这样的东西:

for (i = 1...100) { preLoader.push($('<div id="' + i + '" />')); }

然后,根据操作,我将从数组中获取正确的元素并将其附加到 DOM。
现在我的问题是:如果我以后这样做:

$(div#i).remove()

它也会影响我的 preLoader 数组吗?或者它是与 DOM 中的引用不同的引用吗?

最佳答案

will it also affect my preLoader array

不,不会。仅当无法访问它(即没有对它的引用)时,对象才会从内存中删除。 $('div#'+i).remove()之后就无法从DOM访问了,但是仍然可以通过preLoader[i-1]访问code>。因此,您需要从 preLoader 数组中显式删除该对象:

preLoader.splice(i-1,1);

关于JavaScript内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11703088/

相关文章:

javascript - EaselJS sprite on("click) 返回 CORS 错误

javascript - 使用 Froogaloop JavaScript 和 jQuery 重新启动 Vimeo iFrame

jquery - 如何在使用 jQuery 隐藏输入字段后正确定位 HTML5 表单验证错误消息?

javascript - 第二次按钮单击事件后,javascript 函数在 c# 的 asp.net 中不起作用

Firefox 扩展中的 Javascript 范围/安全问题

javascript - 有没有办法通过浏览器扩展覆盖内置 Firefox PDF 阅读器的 CSS?

php - 为什么这个 PHP 代码不正确?

javascript - 使用困惑的查询(HTML 表)从 JSON url 添加数据

javascript - 生成的表在 firefox 33 中为空

javascript - 在弹出窗口中打开部分 View