jQuery EasyUI Tabs关闭Tab时不能完全释放内存解决方法

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();而是其它变量名。请自行替换一下这里的参数名即可。

原文地址:https://www.cnblogs.com/wintalen/p/2319604.html