jQuery MiniUI

标题: 关于MINIUI datagrid IE8浏览器显示卡顿问题 [打印本页]

作者: 邓冰冰    时间: 2016-8-23 10:16:30     标题: 关于MINIUI datagrid IE8浏览器显示卡顿问题

我要显示的行数有200多行   代码如下

function getIdxAndAddRow(project){

        $.ajax({
                                url:'/TBPWeb/runplanmgt/idxInsertAction.do?method=getZdsysrunningIdx&project='+project,
                                type:"get",
                                async:false,
                                success:function(data){
                                                if(data=="null"){
                                                        return;
                                                }
                                var result=mini.decode(data);
                               
                                        for(var i=0;i<result.length;i++){
                                       
                                                var st=getSlaveValue(project);
                                                st=mini.decode(st);
                                                st.xuhao=result[i].XUHAO;
                                            st.idxname=result[i].IDXNAME;
                                                st.unit=result[i].UNIT;
                                                st.idxdegreed=result[i].IDXDEGREED;
                                                st.response=result[i].RESPONSEID;
                                                st.firjdgoal=result[i].FIRJDGOAL;
                                                st.halfyeargoal=result[i].HALFYEARGOAL;
                                                st.onetothree=result[i].ONETOTHREE;
                                                st.wholeyear=result[i].WHOLEYEAR;
                                       
                                                var newrow=st;
                                                mini.get(project).addRow(newrow,mini.get(project).getData().length);       
                                        }               
                                }                       
                        })
                       
}

  数据长度是219行   用非IE内核浏览器加载显示和编辑都很流畅,可是IE浏览器显示,拖动 以及编辑单元格 都非常卡顿 延迟很严重 半天才有反应  请问这个问题如何优化  试过设置
mini.get('sysrunningIdxsafeCB').setVirtualScroll=true;
但是没有用

作者: felt    时间: 2016-8-23 13:18:12

直接在表格上设置virtualscroll="true"
ie性能本来就比较慢的,200多行,肯定要开虚拟滚动
作者: 邓冰冰    时间: 2016-8-23 13:32:18

felt 发表于 2016-8-23 13:18
直接在表格上设置virtualscroll="true"
ie性能本来就比较慢的,200多行,肯定要开虚拟滚动 ...

不行啊  不能直接在表格上设置 virtualscroll="true"  因为这个源代码我不能动  是公司其他人写的 我在页面加载的时候 再setvirtualscroll不行,么
作者: felt    时间: 2016-8-23 13:41:58

邓冰冰 发表于 2016-8-23 13:32
不行啊  不能直接在表格上设置 virtualscroll="true"  因为这个源代码我不能动  是公司其他人写的 我在页 ...

不行
作者: 邓冰冰    时间: 2016-8-23 15:20:51

felt 发表于 2016-8-23 13:41
不行

virtualscroll属性不支持get set?
作者: felt    时间: 2016-8-23 15:45:42

邓冰冰 发表于 2016-8-23 15:20
virtualscroll属性不支持get set?

setVirtualScroll(true)
作者: 邓冰冰    时间: 2016-8-23 16:18:04

felt 发表于 2016-8-23 15:45
setVirtualScroll(true)

我设置完之后   datagrid的 VirtualScroll属性确实变成了true 可是IE卡顿的现象并没有改变
作者: felt    时间: 2016-8-23 16:23:39

邓冰冰 发表于 2016-8-23 16:18
我设置完之后   datagrid的 VirtualScroll属性确实变成了true 可是IE卡顿的现象并没有改变 ...

组织好数据用addRows一次添加进去,不要200多次addRow
作者: 邓冰冰    时间: 2016-8-23 16:36:21

felt 发表于 2016-8-23 16:23
组织好数据用addRows一次添加进去,不要200多次addRow

那个代码发错了 应该是这样  你看下哪里还有可以优化的空间? 因为我看了你们那个10000行的例子 用IE也是很快的  所以应该是程序的问题
function getIdxAndAddRow(project){
       
        var mainid=mini.get('mainid').value;
       
        var result=getIdxData(project);
       
        result=mini.decode(result);
       
        var data=[];
                               
                        for(var i=0;i<result.length;i++){
                                var o={
                                "mainid":uuid(),
                                "wid":mainid,
                                "xuhao":result.XUHAO,
                                "idxname":result.IDXNAME,
                                "unit":result.UNIT,
                                "idxdegreed":result.IDXDEGREED,
                                "response":result.RESPONSEID,
                                "firjdgoal":result.FIRJDGOAL,
                                "halfyeargoal":result.HALFYEARGOAL,
                                "onetothree":result.ONETOTHREE,
                                "wholeyear":result.WHOLEYEAR
                                                };
                                                data.push(o);
                                        }       
                                                                       
                                        mini.get(project).setData(data);       
                                }       
作者: felt    时间: 2016-8-23 16:54:14

邓冰冰 发表于 2016-8-23 16:36
那个代码发错了 应该是这样  你看下哪里还有可以优化的空间? 因为我看了你们那个10000行的例子 用IE也是 ...

做个html例子,发上来
设置了virtualScroll应该是不会卡的




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