我有一个按钮单击事件,它抓取与选中的复选框相关联的名称,并将它们添加到<ul>页面右侧的复选框中.这工作得很好,那么我还有一个按钮,将捞出<li>的检查与checkboxes从<ul>.这很有用.当你去添加一个已从右侧删除的项目时,问题就来了.该项目不在页面上,因此它显然已从DOM中删除,但就好像它仍然存储在浏览器内存中一样.如何清除内存?代码如下.
$('.add-people').click(function () {
$('.add-names:checked').each(function () {
var name = $(this).parent().siblings('td.name-cell').html();
if ($('ul.group-list').find(':contains(' + name + ')').length) {
//Name is already in list
} else {
var newLi = '<li><input id="name" class="remove-names" type="checkbox" name="' + name + '"><span>' + name + '</span></li>'
$('ul.group-list').append(newLi);
}
});
});
$('.remove-people').click(function () {
$('.remove-names:checked').each(function () {
$(this).parent().remove();
});
});
Run Code Online (Sandbox Code Playgroud) 我和我的朋友就PhoneGap进行了长时间的讨论.他说PhoneGap没有垃圾收集方案.我搜索了Javascript垃圾收集,找到了以下链接:
现在这是一个问题:PhoneGap是否有垃圾收集器(或者PhoneGap应用程序是否像本地应用程序一样自动处理)?如果答案是肯定的,它是否与javascript垃圾收集器相似?
我感谢你的评论:)
我正在写JS代码。我需要知道当我删除大对象时,JS 中的内存是如何工作的。
var a = new Object();
a.b = new Object();
a.b.c = new Object();
a.b.c.d = new Object();
a.b = undefined; // Is it delete a.b.c and a.b.c.d or not?
Run Code Online (Sandbox Code Playgroud) var domElementReference = $(document.createElement('div'));
Run Code Online (Sandbox Code Playgroud)
如果我实际上没有将它插入页面(一旦domElementReference超出范围),DOM元素是否会被销毁?
如果没有:如果我有一个创建DOM元素的构造函数,是否有自动方式在javascript中清除它们?
我想要的是将它们附加到元素上,然后使用
myChildNode.parentNode.removeChild(myChildNode);
Run Code Online (Sandbox Code Playgroud)
但是,当对象超出范围时,我必须手动调用该函数,这有点混淆整个"垃圾收集"的想法.任何自动销毁对象的模式?
我想在java脚本中询问有关标记和扫描的问题,我将在下面提供该代码
var user = "mina";
var user = null;
console.log(user);
Run Code Online (Sandbox Code Playgroud)
在该代码中,如果我们实现标记并扫描"var user ="mina""被渗透到垃圾,因为它不再可访问是正确的