解决easyui 控件datagrid 二次加载问题
2016-04-27 15:23
387 查看
使用url方式的初学者,经常碰到重复请求的问题,这个问题的根源是因为一旦设置了url参数,Datagrid组件在实例化的时候就会做请求,如何避免二次加载这样问题呢,个人觉得注意以下两点基本就可以防止二次加载了。
使用load和reload函数去动态加载数据,而不是选择再次渲染组件,而再次渲染组件的目的仅仅是为了设置url,这得不偿失,url的设置可以通过options方法获取到组件实例的opts,然后在给opts.url重新赋值即可;
用class方式注册组件,一般只将属性写在DOM里,而事件通常还是用 javascipt调用datagrid构造函数注册,这个过程中就发生了二次请求:第一次是class方式实例化的时候,第二次是javascript 注册事件的时候。所以在要绑定事件的情况下,索性就不要使用class方式注册了。
说这么多其实上面的都是扯淡;直接上列子:<table id="materialData" class="easyui-datagrid" data-options="toolbar:'#tb'" ></table>把这里的class去掉就行了,改为:
<table id="materialData" data-options="toolbar:'#tb'" ></table>,因为我们在js里面是这样写的:$('#materialData').datagrid({});所以body里面不用再写他的class,否则在页面加载《table》时候就回去调用一次,而在js里面还会去调用!
先写这么多给自己理解吧,以后发现理解的不对了再补充!
使用load和reload函数去动态加载数据,而不是选择再次渲染组件,而再次渲染组件的目的仅仅是为了设置url,这得不偿失,url的设置可以通过options方法获取到组件实例的opts,然后在给opts.url重新赋值即可;
用class方式注册组件,一般只将属性写在DOM里,而事件通常还是用 javascipt调用datagrid构造函数注册,这个过程中就发生了二次请求:第一次是class方式实例化的时候,第二次是javascript 注册事件的时候。所以在要绑定事件的情况下,索性就不要使用class方式注册了。
说这么多其实上面的都是扯淡;直接上列子:<table id="materialData" class="easyui-datagrid" data-options="toolbar:'#tb'" ></table>把这里的class去掉就行了,改为:
<table id="materialData" data-options="toolbar:'#tb'" ></table>,因为我们在js里面是这样写的:$('#materialData').datagrid({});所以body里面不用再写他的class,否则在页面加载《table》时候就回去调用一次,而在js里面还会去调用!
先写这么多给自己理解吧,以后发现理解的不对了再补充!
相关文章推荐
- UItraEdit许可证密钥
- UVa 540 Team Queue
- ERROR: invalid memory alloc request size 1111005384
- Java StringBuilder 与 StringBuffer
- ios–OpenCV–IplImage与UIImage类型相互转换
- Druid连接池自定义数据库密码加解密的实现
- 蓝牙 CoreBluetooth基本使用
- BZOJ 4546|CodeChef XRQRS|Xor Queries|可持久化Trie
- nifi中清空 Queue
- UIImageView 的contentMode属性
- jquey ajax 发送数组
- 【Vue】 (10) 组件-2
- iOS 获取view的controller UIView+UIViewController
- request.getParameterMap();
- Android酷炫实用的开源框架(UI框架)
- 2016.04.27,英语,《Vocabulary Builder》Unit 19
- robot framework-requests库安装问题解决
- String,StringBuffer与StringBuilder的区别??
- StringBuilder类为何比string的简单拼接效率高
- Cannot run program "/home/user/Android/Sdk/build-tools/23.0.2/aapt": error=2 No such file or directo