在IE ActiveX对象开发时的注意事项:
今天翻犀牛书第五版,在154页专门提到了IE下内存泄露的问题。提供的参考网址已经无法访问了,地址如下:
http://msdn.microsoft.com/zh-cn/library/bb250448(v=VS.85).aspx
循环引用Dom对象时就会造成此问题,参考例子:
var myGlobalObject;
function SetupLeak()
{
// 首先把页面元素赋值给变量
myGlobalObject =
document.getElementById("LeakedDiv");
// 接着把变量赋值给页面元素的属性,这样形成一个循环引用
document.getElementById("LeakedDiv").expandoProperty =
myGlobalObject;
}
function BreakLeak()
{
document.getElementById("LeakedDiv").expandoProperty =
null;
}
近年来越来越多人采用JS的面相对象开发,这种情况下不太严谨的码农极易犯此错误。所以如果你开发的应用中涉及到ActiveX的话一定要小心的处理。