1.TAB引用IFRAME,关闭TAB时IFRAME不会被销毁从而导致内存不能释放,大量使用TAB+IFRAME容易导致内存溢出
2.由于在使用panel和继承panel的组件中在包含了combo及继承了combo的组件时,在panel及继承组件容器(下面简称“容器”)在自身销毁的时候,并不会自行去销毁里面载入的combo及继承组件,从而导致了当我们重复打开和关闭相关容器的时候,实际容器里面的使用的como相关组件生成的combo下拉框也就一个panel对象并不会销毁,从而导致大量的冗余html,dom体积不断增大。
解决方法:应用如下的js脚本
$.fn.panel.defaults.onBeforeDestroy = function() {/* 回收内存 */
var frame = $('iframe', this);
if (frame.length > 0) {
frame[0].contentWindow.document.write('');
frame[0].contentWindow.close();
frame.remove();
if ($.browser.msie) {
CollectGarbage();
}
}
};
$.fn.panel.defaults = $.extend({},$.fn.panel.defaults,{onBeforeDestroy:function(){
$(this).find(".combo-f").each(function () {
var panel = $(this).data().combo.panel;
panel.panel("destroy");
});
}
});