【发布时间】:2012-01-23 17:47:41
【问题描述】:
我有一个脚本,它在 Intranet 的每个页面上运行,它基于类为输入字段添加事件、设置大小和长度(这允许在公司之间进行不同的配置)。
但是,我注意到内存泄漏。
我添加事件的代码是:
$("input.PartNo" ).addClass("font8_input").attr({maxlength: '20',size:'20'})
.bind('focus',function(event){javascript:fncAjaxClear();$(this).addClass("input_focus");})
.bind('blur',function(event){if (typeof fncPartBlur === "function") fncPartBlur(''+$(this).attr("id")+'');$(this).removeClass("input_focus input_error");})
.bind('keyup',function(event){javascript:fncAjaxSearch('wsDatabase','..\\AjaxBrowses\\PartBrowse.asp',''+$(this).attr("id")+'',''+$(this).attr("id")+'List','fncPreAjaxPart','fncPostAjaxPart');})
.each(function(){$(this).after('<div id="'+$(this).attr("id")+'List" class="AjaxSuggest"></div>');});
阅读“Learning Jquery”一书后,它谈到了将事件绑定到变量。这是正确的吗?如果是这样,最好的方法是更改我上面的代码以动态创建变量名称,然后将事件绑定到这些名称。
谢谢。
【问题讨论】:
-
.PartNo 在 DOM 中存在多少次?
-
只有一次。每个 id 都是唯一的,所以我按类类型选择。
-
我注意到通过使用任务管理器,当我在 Intranet 上进行超链接时,IE 的内存使用量增加了。如果我回到主页,内存不会下降 - 永远......
标签: jquery memory-leaks