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();而是其它變量名。請自行替換一下這里的參數名即可。