|
一个简单的例子写一下自己在list嵌套时做的优化,,
大概的显示是这个样子的,很常见,外边职称的list,里边是嵌套职称内的用户list
数据不多,大概是300条左右,但是如果不经过优化,但是一开始直接打开的时候要等5s左右才可以打开。。。这无疑是一种灾难。。
一开始以为是数据库加载过多原因造成的,然后将数据写死,写到json中,发现数据并没有优化多少,
根据chrome的分析,网络获取的数据的时间1s不到,剩下的时间显示空白,好吧。。。然后预计就是画面渲染过慢导致的了,
解决的话想法也很简单,,就是"懒加载"(这里是已经加载数据完毕,只是没有显示)先显示外层list,然后通过点击显示内层list,哪块儿需要显示哪块儿
想法是简单的,但是在实践过程中,由于缺乏一定的知识,走了一些弯路,现在分享记录如下:
这是布局的画面,很easy,就是两个list嵌套
核心代码:
- //展开通讯录
- Model.prototype.li1Click = function(event) {
- // var row = event.bindingContext.$object;
- // var personData = this.comp("personData");
- // 延迟加载,在点击分组信息时加载人员信息
- var controlGroup1Dom = $(event.currentTarget).find("div[xid='controlGroup1']");
- var list2Dom = controlGroup1Dom.find("div[xid='list2']");
- this.comp(list2Dom[0]).refresh();
-
- };
-
- Model.prototype.controlGroupTitle1Click = function(event){
- // 获取箭头的jquery对象,进行箭头的转换
- var i = $(event.currentTarget).find("i[xid='i']");
- var src = $(i).attr("class");
- if (src.indexOf("right") >= 0) {
- $(i).attr("class", src.replace("right", "down"));
- } else {
- $(i).attr("class", src.replace("down", "right"));
- }
- };
复制代码 有需要的可以看看哦。
|
|