jQuery MiniUI

 找回密码
 立即注册
查看: 2693|回复: 5
打印 上一主题 下一主题

动态创建控件,不会销毁,导致内存一直增加怎么解决 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2017-6-27 22:24:28 |只看该作者 |倒序浏览
用ajax动态加载局部页面控件的时候调用 mini.parse(),页面旧的控件不会被销毁,导致miniui 控件对象一直增加直到浏览器崩溃,换成原生态的控件就会自动回收,请问miniui要如何销毁控件? 特别是轮询应用的时候特别严重

Rank: 8Rank: 8

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

Rank: 1

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

一次加载大概100个控件? 有没有办法 直接调用外层div ,然后把里面所包含的控件都destroy, 不然页面控件都不同,要一个一个写销毁就麻烦了

Rank: 8Rank: 8

地板
发表于 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();
})
可以这样获取全部控件,然后销毁。

Rank: 1

5#
发表于 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 获取不到

Rank: 8Rank: 8

6#
发表于 2017-6-28 18:12:19 |只看该作者
zwtlong 发表于 2017-6-28 15:42
好的,我试试,另外我发现一个问题, getsByName 对tabs  toolbar 获取不到

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

Archiver|普加软件

GMT+8, 2024-10-7 05:29 , Processed in 1.032410 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部