javascript - 为什么 JEasyUI 数据网格加载速度非常慢?

标签 javascript settimeout jquery-easyui

我有一个带有 jEasyUI 布局的页面,然后有 4 个 jEasyUI 数据网格和一个属性网格,它们根据鼠标在特定点上的单击来绑定(bind)和取消绑定(bind) 2 或 3 行数据(不同网格不同) 。

所以基本上我需要根据可以通过鼠标单击执行的选择在这些网格中显示不同的行集。但是整个绑定(bind)过程非常慢,以至于整个浏览器似乎挂起几秒钟,以允许我进行另一个事件(加载新的行集)。

这就是我绑定(bind) jEasyUI 网格的方式:

$('#gridId1').datagrid({ 
     data: data, 
     onEndEdit: function(){}, 
     onAfterEdit: function(){}, 
     onBeforeEdit:function(){} 
});

其中#gridId1定义如下:

<table border="0" id="gridId1" class="easyui-datagrid" style=""
                   data-options="singleSelect:true,collapsible:true,showHeader:false">
   <thead>
        <tr>
          <th width="90%" data-options="field:'Name'">Name</th>
          <th width="10%" field="action" formatter="formatAction">Action</th>
        </tr>
   </thead>
</table>

典型的data json是这样的:

var data = {'total':2,'rows':[{Name:'Dummy1'},{Name:'Dummy2'}]}

jEasyUI 版本 - 1.4.1

为什么 jEasyUI 网格执行速度这么慢?是因为我试图将其中多个依次绑定(bind)吗?并且内部 easyUI 控件极度依赖 setTimeout

请帮忙..

最佳答案

EasyUI datagrid 有 2 种加载方式 ( http://www.jeasyui.com/documentation/datagrid.php ) 一种方法是通过 html,另一种方法是通过 javascript。 在你的情况下,我认为你需要 javascript 初始化。 现在您使用这两种方式并且数据网格被初始化两次。

我的意思是你应该删除

class="easyui-datagrid"

data-options="singleSelect:true,collapsible:true,showHeader:false"

然后在 javascript 部分,您应该像这样初始化数据网格:

$('#gridId1').datagrid({ 
     data: data,
     singleSelect:true,
     collapsible:true,
     showHeader:false,
     onEndEdit: function(){}, 
     onAfterEdit: function(){}, 
     onBeforeEdit:function(){} 
});

希望对你有帮助

关于javascript - 为什么 JEasyUI 数据网格加载速度非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28310575/

相关文章:

javascript - 如何使用easyui表单提交数据

javascript - Vue.js 使用方法合并 2 个文件

javascript - bootstrap-select:将选项添加到多个选择框后,它无法正确刷新

javascript - AS3 中的悬停缩放

events - EasyUI datagrid 发送不需要的请求

jquery-easyui - 在组合框更改上设置文本字段的值-easyui

javascript - 如何使用主题更改 Material UI 中按钮的形状?

javascript - window.print() 尝试在完成渲染之前打印一个页面(动态创建的)

javascript - 使用具有自定义延迟的 javascript 在循环中动态更改包装器背景

javascript - 在 Javascript 中调用没有元素 ID 的 setTimeout