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();而是其它变量名。请自行替换一下这里的参数名即可。
也可以重写panel的beforeDestroy事件实现,把如下代码添加到easyui的最后即可
$.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();
}
}
};
分享到:
相关推荐
扩展EasyUI tabs 组件,加载tab页时添加遮罩,是页面加载时更加美观,内涵示例.
关闭easyui的tabs释放iframe的内存,
Easyui tabs 标题居左,文字竖着
Easyui tabs Title居左侧,并且文字竖着显示
非常好看的易用的easyui tabs 右键插件,自己两行代码就搞定
easyui选项卡模仿浏览器的右键关闭功能。 easyui选项卡模仿浏览器的右键关闭功能。
解决使用tab布局过程中页面多次加载的问题 如果在使用easyui过程中,你使用了easyui 的tab布局,在tab布局的内容上使用的不是content,而是iframe,那么你的页面有可能多次加载了,这篇文章帮你解决问题
jQuery EasyUI EasyUI 组件范例
NULL 博文链接:https://xiaofengtoo.iteye.com/blog/1263362
Easyui皮肤组件模板html,手机端html5模板 easyui 版本:1.4.5 EasyUI信息管理系统现在支持的浏览器包括:IE浏览器:IE8+(只支持标准模式),火狐浏览器:Firefox 12+(PC & Mac),Safari浏览器:Safari 6+,...
后台模板HTML+整套Easyui皮肤组件-后台管理系统模板后台模板HTML+整套Easyui皮肤组件-后台管理系统模板后台模板HTML+整套Easyui皮肤组件-后台管理系统模板后台模板HTML+整套Easyui皮肤组件-后台管理系统模板后台模板...
Easyui皮肤组件模板html,手机端html5模板 easyui 版本:1.4.5 EasyUI信息管理系统现在支持的浏览器包括:IE浏览器:IE8+(只支持标准模式),火狐浏览器:Firefox 12+(PC & Mac),Safari浏览器:Safari 6+,...
tabs代码如下: 代码如下: ”tabs” class=”easyui-tabs”> ”tabs1″> tabs1 </div> ”tabs2″> tabs2 </div> </div> 如果id=”tabs”的div未设置宽度和高度,easyUI默认的宽度和高度是auto,这样在google浏览器下...
分析发现是iframe没有释放造成的,于是对所有已关闭的iframe所占用的内存进行释放,虽然不能完全释放,但是iframe内存占用量不会一直增长,整个应用内存使用量控制在150M左右。 /** * 动态创建iframe * @param dom...
2套后台模板HTML+整套Easyui皮肤组件-后台管理系统模板
EasyUI皮肤组件UI设计 这套easyui皮肤,用了扁平化的设计风格,在easyui官方最新版jQuery EasyUI 1.4.5的基础上重新设计所有组件,与easyui默认皮肤一样,可以很方便的进行替换设置,并且也可以很方便的对本套皮肤...
也就是说解决easyui 左侧tab重新刷新加载问题实现。 实现如下: function addTab(subtitle, url) { if (!$('#tabs').tabs('exists', subtitle)) { $('#tabs').tabs('add', { title : subtitle, content :...
easyui tab 绝对好用的tab插件
我们在使用EasyUI Tabs框架时,在框架最顶层的弹出窗体中需要操作当前Tab的iframe窗体内容或方法,这时候我们就可以使用以下方法来实现。 具体实现代码如下所示: function getTabWindow() { var curTabWin = null...