起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1897|回复: 9

[处理中3] scrollView下滑到底的时候,会有1秒的卡顿,有没有办法解决这个问题呢?

[复制链接]

19

主题

87

帖子

261

积分

中级会员

Rank: 3Rank: 3

积分
261
QQ
发表于 2017-8-15 18:42:47 | 显示全部楼层 |阅读模式
求指导啊。一次加载多了卡顿不算什么,但是把list的Limit限定为1的话,就太卡了。

18

主题

113

帖子

525

积分

高级会员

Rank: 4

积分
525
QQ
发表于 2017-8-16 09:33:44 来自手机 | 显示全部楼层
我怎么都觉得我们的这个控件有卡顿
回复 支持 反对

使用道具 举报

发表于 2017-8-16 14:46:58 | 显示全部楼层
不会吧!你先F12 看下有没有发送网络请求??
如果不是网络请求的原因
就跟下自己的代码!有没有耗时的??

可以运行平台案例!
/UI2/system/components/justep/list/demo/news.w

不会出现你说的情况呢
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

19

主题

87

帖子

261

积分

中级会员

Rank: 3Rank: 3

积分
261
QQ
 楼主| 发表于 2017-8-16 16:03:07 | 显示全部楼层
liangyongfei 发表于 2017-8-16 14:46
不会吧!你先F12 看下有没有发送网络请求??
如果不是网络请求的原因
就跟下自己的代码!有没有耗时的?? ...

我找到问题所在了:  别人是采用了延迟加载,先把list后面除了image之外的都渲染个几十条出来。然后往下看的时候就显得没有任何停顿,就看着图片慢慢加载,但是没有渲染的那一下的卡顿。

能不能给提供一个具体的延迟加载解决办法,真是头疼啊。网上找了一个稍微可用的,又被 val("fImage") 难住了。


        Model.prototype.lazyload = function(event){

                var images = this.getElementsByXid('image2');
            var len    = images.length;
            var n      = 0;            
            return function() {
                var seeHeight = document.documentElement.clientHeight;
                var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                        alert(seeHeight);
                for(var i = n; i < len; i++) {
                    if(images.offsetTop < seeHeight + scrollTop) {
                        if(images.getAttribute('src') === 'images/loading.gif') {
                             images.src = images.getAttribute('data-src');  // 问题在这里,这里不能用 val("fImage") ,只能写路径。求解决办法啊。
                             alert(images.src);
                        }
                        n = n + 1;
                     }
                }
            };
        };
回复 支持 反对

使用道具 举报

19

主题

87

帖子

261

积分

中级会员

Rank: 3Rank: 3

积分
261
QQ
 楼主| 发表于 2017-8-16 16:07:32 | 显示全部楼层
liangyongfei 发表于 2017-8-16 14:46
不会吧!你先F12 看下有没有发送网络请求??
如果不是网络请求的原因
就跟下自己的代码!有没有耗时的?? ...

求写个延迟加载的demo啊,思路这样: 1,image的bind-attr-src属性先空着,list 的limit 设为50,只要不加载图片,其他数据不费流量。然后等到image快到可视范围了,再把他的bind-attr-src给他加上。
回复 支持 反对

使用道具 举报

发表于 2017-8-16 17:47:04 | 显示全部楼层
winner484 发表于 2017-8-16 16:07
求写个延迟加载的demo啊,思路这样: 1,image的bind-attr-src属性先空着,list 的limit 设为50,只要不 ...

http://docs.wex5.com/wex5-ui-question-list-2086/

可以先不给bind-attr-src 绑定的data字段赋值! 等渲染完以后!再循环data 给字段赋值!就可以!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

19

主题

87

帖子

261

积分

中级会员

Rank: 3Rank: 3

积分
261
QQ
 楼主| 发表于 2017-8-16 23:26:48 | 显示全部楼层
还有个问题请教,我用bind-style 了一个JS方法,然后return JSON.parse('{"height" : "100px"}'); 有效,但是return JSON.parse('{"height" : "this.getElementByXid("classdiv").clientWidth;"}'); 就无效。然后无论怎么折腾都没用,求办法。height肯定是个变量啊,不可能直接写100px。
回复 支持 反对

使用道具 举报

发表于 2017-8-17 13:49:35 | 显示全部楼层
winner484 发表于 2017-8-16 23:26
还有个问题请教,我用bind-style 了一个JS方法,然后return JSON.parse('{"height" : "100px"}'); 有效,但 ...
  1. return JSON.parse('{"height" : '+this.getElementByXid("classdiv").clientWidth+'"}');
复制代码


js方法不要写在字符串中!否则不能执行的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

19

主题

87

帖子

261

积分

中级会员

Rank: 3Rank: 3

积分
261
QQ
 楼主| 发表于 2017-8-17 18:14:54 | 显示全部楼层
liangyongfei 发表于 2017-8-17 13:49
js方法不要写在字符串中!否则不能执行的!

多谢了,就是延迟加载还没解决。还得多学习才行。
回复 支持 反对

使用道具 举报

发表于 2017-8-18 09:33:20 | 显示全部楼层
winner484 发表于 2017-8-17 18:14
多谢了,就是延迟加载还没解决。还得多学习才行。


图片的延迟加载可以先上网搜下资料
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 11:11 , Processed in 0.070502 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表