EasyUI的Tabs,如果你在Tab中使用了<iframe>显示Tab页面内容,在关闭Tab后,iframe所占用的内存并不能得到释放,直到浏览器关闭。当Tab操作得越多,内存占用就越大,随时都会令浏览器内存溢出,你就不得不希望能通过限制Tab的打开数量来改善这种状况。但要注意,关闭后的Tab并没有释放iframe所占用的内存,只是简单地限制同时打开的Tab数量效果似乎是太理想的。很多人为这个问题而烦恼。下面给出一个更有效地释放Tab所占用内存的解决方法For EasyUI 1.2.5:
if (你使用的是未经压缩的EasyUI)
{
打开jquery.easyui.js,搜索“panel("options").tab.remove();”,在该语句后面插入下面代码,保存即可:
var frame=$('iframe', tab);if(frame.length>0){frame[0].contentWindow.document.write('');frame[0].contentWindow.close();frame.remove();if($.browser.msie){CollectGarbage();}}
}
else
{
打开jquery.easyui.min.js,搜索“panel("options").tab.remove();”,在该语句后面插入下面代码,保存即可:
var frame=$('iframe', i);if(frame.length>0){frame[0].contentWindow.document.write('');frame[0].contentWindow.close();frame.remove();if($.browser.msie){CollectGarbage();}}
}
---------------------------------------------
注意:
1、本解决方法,仅针对EasyUI 1.2.5!!
2、有一个地方可能你需要自行修改。举例:var frame=$('iframe', i);该句中的第二个参数i,跟搜索到的panel("options").tab.remove();前面的对象变量同名,有可能你压缩的文档在压缩后,不是i.panel("options").tab.remove();而是其它变量名。请自行替换一下这里的参数名即可。