jQuery MiniUI

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

Tabs切换,速度太慢。 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-7-26 09:15:36 |只看该作者 |倒序浏览
一个弹出的tabs页面,有7、8个GRID,多的时候几百条数据,比较大,这样当多个tabs有数据的时候,切换很卡特别是IE9之类的老浏览器。请问有没有办法怎么优化一下?
本人Js不太了解,只知道Js的对象没发手动回收,miniui有没有这方面优化办法?

Rank: 6Rank: 6

沙发
发表于 2013-7-26 09:23:46 |只看该作者
ie 回收机制
function f() {
v = null;
setTimeout(CollectGarbage, 1);
}
GC清理”的两个条件:没有引用和离开上下文环境。
在IE窗体被最小化时,IE将会主动调用一次

Rank: 2

板凳
发表于 2013-7-26 10:21:22 |只看该作者
有没有销毁一个tab中所有对象的方法?

Rank: 8Rank: 8

地板
发表于 2013-7-26 14:50:34 |只看该作者
xiaoNiuNew 发表于 2013-7-26 10:21
有没有销毁一个tab中所有对象的方法?

你tab中的表格都是写死在tab里面的?
如果是的话,建议改成表格写到其他的页面上,然后tab的url去加载这个页面试试

Rank: 2

5#
发表于 2013-7-30 10:31:38 |只看该作者
factory 发表于 2013-7-26 14:50
你tab中的表格都是写死在tab里面的?
如果是的话,建议改成表格写到其他的页面上,然后tab的url去加载这 ...

我准备这么做,现在有个需求是需要在tabs所在页面调用tab页面的方法,以给tab页面传参,类似mini.open,母页面调用弹出页的函数。
但这种方式构建的tabs貌似没有getTabIFrameEl这个方法。可以实现上面的需求吗?

Rank: 8Rank: 8

6#
发表于 2013-7-30 10:36:39 |只看该作者
xiaoNiuNew 发表于 2013-7-30 10:31
我准备这么做,现在有个需求是需要在tabs所在页面调用tab页面的方法,以给tab页面传参,类似mini.open, ...

url加载的tabs就会有iframe的啊
var iframeEl = tabs.getTabIFrameEl(tab);
然后就跟mini.open一样了

Rank: 2

7#
发表于 2013-7-30 11:00:29 |只看该作者
factory 发表于 2013-7-30 10:36
url加载的tabs就会有iframe的啊
var iframeEl = tabs.getTabIFrameEl(tab);
然后就跟mini.open一样了 ...

HTML:
<div id="tabs" class="mini-tabs" activeindex="0" style="width: 100%; height: 100%;">   
   <div name="tab1" title="表1">
     。。。一个grid
   </div>
   <div name="tab2" url="/APS_PlanOptimization/CompanyModelAnalysis/Rawm" title="表2">
    </div>
</div>
脚本:
mini.parse();
    var tabs = mini.get("tabs");
tabs.on("beforeactivechanged", function (e) {
          var temp = e.tab;
        var iframe = tabs.getTabIFrameEl(temp);
        iframe.contentWindow.myTest();//tab2中的函数
      
    });
iframe为空
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

8#
发表于 2013-7-30 12:29:12 |只看该作者
你的tab1不是加载的,没有iframe

Rank: 2

9#
发表于 2013-7-30 13:23:33 |只看该作者
felt 发表于 2013-7-30 12:29
你的tab1不是加载的,没有iframe

tabs.on("beforeactivechanged", function (e) {
           var temp = e.tab;
         var iframe = tabs.getTabIFrameEl(temp);
         iframe.contentWindow.myTest();//tab2中的函数
      
     });
里,e.tab拿到的是第二个加载的tab吧

Rank: 8Rank: 8

10#
发表于 2013-7-30 16:34:40 |只看该作者
xiaoNiuNew 发表于 2013-7-30 13:23
tabs.on("beforeactivechanged", function (e) {
           var temp = e.tab;
         var iframe = t ...

beforeactivechanged 是切换之前激发

Archiver|普加软件

GMT+8, 2024-11-29 06:30 , Processed in 1.037687 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部