从我记得的一个不太遥远的过去,Javascript解释器在面对循环引用时遭遇了内存泄漏问题.
在最新的浏览器中仍然如此吗?(例如Chrome,FF 3.5等)
你知道什么可能导致JavaScript中的内存泄漏吗?我对浏览器感兴趣:IE 7,FireFox 3,Safari 3
我正在尝试使用现有的工作代码库并使用JavaScript使其面向对象.我的系统采用JSON包含一对多关系中的组和项,并在页面上显示这一点.这些项目可以移动到不同的组中,并且还需要计算它们在这些组中的位置.因此,需要建立能够了解其周围的群组和门票的事件.
我正在使用John Resig的简单JavaScript继承设置来建立两个类,Item并且Group.当每个Item实例化时,它会引用它的父级Group.当我想要建立我的事件时,我的问题出现了,并且最容易用以下函数解释:
var Group = Class.extend({
...
// Calculate where to place the new item within the group
calculate_new_position: function(item) {
var pos = -1;
// Loop through all DOM items in groups body
$(".item", this.elBody).each(function(i) {
// Retrieve it's class object
var next = $(this).data("_obj");
// Calculating things using the class reference
var lowerPrio = item.tData.priority < next.tData.priority,
lowerId = item.id < …Run Code Online (Sandbox Code Playgroud) 如果我在javascript中的任何元素上添加事件处理程序
var link = document.createElement("a");
document.body.appendChild(link);
link.addEventListner("click",function(){
alert("do something");
});
Run Code Online (Sandbox Code Playgroud)
然后我删除链接
link.parrentNode.removeChild(link);
Run Code Online (Sandbox Code Playgroud)
然后我附加到链接的事件将被删除或将保留在内存中(有点混淆事件存储在内存中多长时间)或者我应该首先删除事件处理程序然后我删除链接节点.