jQuery MiniUI

标题: 动态创建控件,不会销毁,导致内存一直增加怎么解决 [打印本页]

作者: zwtlong    时间: 2017-6-27 22:24:28     标题: 动态创建控件,不会销毁,导致内存一直增加怎么解决

用ajax动态加载局部页面控件的时候调用 mini.parse(),页面旧的控件不会被销毁,导致miniui 控件对象一直增加直到浏览器崩溃,换成原生态的控件就会自动回收,请问miniui要如何销毁控件? 特别是轮询应用的时候特别严重

作者: felt    时间: 2017-6-28 09:04:01

请问你添加的时候有添加多少控件?
不用的控件有销毁吗?如果页面关闭,我们会自动销毁,但是页面没有关闭,需要自行调用mini.get(id).destroy()来销毁
作者: zwtlong    时间: 2017-6-28 09:38:04

felt 发表于 2017-6-28 09:04
请问你添加的时候有添加多少控件?
不用的控件有销毁吗?如果页面关闭,我们会自动销毁,但是页面没有关闭 ...

一次加载大概100个控件? 有没有办法 直接调用外层div ,然后把里面所包含的控件都destroy, 不然页面控件都不同,要一个一个写销毁就麻烦了
作者: felt    时间: 2017-6-28 14:18:11

zwtlong 发表于 2017-6-28 09:38
一次加载大概100个控件? 有没有办法 直接调用外层div ,然后把里面所包含的控件都destroy, 不然页面控件 ...

var div=document.getElementById(id);
var controls=mini.getChildControls(div);    //根据dom元素获取所有内部控件
$(controls).each(function(i,item){
    item.destroy();
})
可以这样获取全部控件,然后销毁。
作者: zwtlong    时间: 2017-6-28 15:42:00

felt 发表于 2017-6-28 14:18
var div=document.getElementById(id);
var controls=mini.getChildControls(div);    //根据dom元素获取 ...

好的,我试试,另外我发现一个问题, getsByName 对tabs  toolbar 获取不到
作者: felt    时间: 2017-6-28 18:12:19

zwtlong 发表于 2017-6-28 15:42
好的,我试试,另外我发现一个问题, getsByName 对tabs  toolbar 获取不到

tabs的话是可以,注意是tabs,不是tabs里面的一个个tab
toolbar是个比较特殊的控件,可以看成是一个普通的div容器。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2