jQuery cluetip内存泄漏
我一直在跟踪我的web应用程序中的内存泄漏 动态删除和添加具有cluetip工具提示的锚点 附件,我想我可能已经把问题缩小到 cluetip中的主闭包,用于将cluetip连接到节点(线 32:var link=this,$this=$(this);) 我一直在使用一个修改过的 jquery 1.3.2版本,具有以下修复程序,允许 要删除的cluetip元素。但是,锚节点变为 孤立,因为在cluetip节点之后仍然有一个对它们的引用 被移除了吗 如果我将cluetip源代码的第32行更改为以下内容进行测试 目的: var link=$('br'),$this=$('br') 锚被释放,但“br”节点开始构建 因此,我想知道是否有人知道我如何解决这个问题 问题或者如果我只是没有正确地释放资源 附加的脚本和源代码: jQuery修改。在第1247行之后,在 关闭大括号(): this.outerHTML=“” 示例脚本:jQuery cluetip内存泄漏,jquery,memory-leaks,cluetip,Jquery,Memory Leaks,Cluetip,我一直在跟踪我的web应用程序中的内存泄漏 动态删除和添加具有cluetip工具提示的锚点 附件,我想我可能已经把问题缩小到 cluetip中的主闭包,用于将cluetip连接到节点(线 32:var link=this,$this=$(this);) 我一直在使用一个修改过的 jquery 1.3.2版本,具有以下修复程序,允许 要删除的cluetip元素。但是,锚节点变为 孤立,因为在cluetip节点之后仍然有一个对它们的引用 被移除了吗 如果我将cluetip源代码的第32行更改为以下内
<html>
<head>
<link rel="stylesheet" type="text/css" href="jquery.cluetip.css"/>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="jquery.cluetip.js"></script>
<script type="text/javascript">
$(document).ready(function() {
setInterval(resetCluetip, 1000);
});
function resetCluetip() {
$('a').each(function() {
$(this).cluetip('destroy');
$(this).unbind().remove();
});
$('#cluetip*').unbind().empty();
$('body').html('<a href="#" class="contextMenu" title="title|body">anchor one</a><br>');
$('a').each(function() {
$(this).cluetip({splitTitle: '|'});
});
}
</script>
</head>
<body>
</body>
</html>
$(文档).ready(函数(){
设置间隔(resetCluetip,1000);
});
函数resetCluetip(){
$('a')。每个(函数(){
$(this.cluetip('destroy');
$(this.unbind().remove();
});
$(“#cluetip*”).unbind().empty();
$('body').html(“
”);
$('a')。每个(函数(){
$(this.cluetip({splitTitle:'|'});
});
}
以下是一些评论:
- 首先,这个脚本对我来说毫无意义。。。每秒重置cluetips和页面内容。如果通过ajax获得更新,为什么不使用新信息更新title属性,然后刷新cluetip或设置cluetip属性
ajaxCache:false
- 在对象上使用
应该将其从DOM中删除,并解除任何引用的绑定,因此不需要使用.remove()
或.unbind().remove()
.unbind().empty()代码>
- 通配符不能以这种方式使用id(“#cluetip*”)一种更好的方法是使用选择器属性过滤器,如
$(“div[id*=“cluetip”])
- 我无法复制内存泄漏