帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
1
帖子
0
勋章
10
Y币

imageCache使用分享

[复制链接]
发表于 2016-12-20 11:34:41
看了很多论坛上的imageCache使用方法,有俩点:
1、通过程序循环数据集合的时候闭包加入imageCache方法
2、通过递归数据集合实现
发现都不是我理想的效果,数据集合量较大的时候imageCache处理的时间比不用imageCache展示的时间要慢很多,展示会有明显延迟,最终采取以下方法
还是for循环将html拼接,其中需要缓存的img改成:<img class="imgCache" srcs="'+data[i].imgUrl+'">
$('#data_div').html(htmlStr);
imageCache();

调用加载缓存方法,具体实现如下:
function imageCache(){
          var srcs = $("img.imgCache");
          if (srcs.length > 0) {
                   for(var i=0;i<srcs.length;i++){
                           (function(imgObj){
                                   var imgUrl = imgObj.attr("srcs");
                                 api.imageCache({
                                 url: imgUrl
                             },function(ret,err){
                                 if (ret) {
                                      imgObj.attr("src", ret.url);
                                 }
                             });
                           })($(srcs[i]));
                   }
          }
}


这种方法进入页面还是和原先一样显示数据,然后再去处理缓存图片,页面显示的速度和图片展示的速度都是可以接受的!up
30
帖子
0
勋章
313
Y币
翻译成普通版本。。。
<img class="img" src="占位图" srcs="网络图">
调用方法。。。
        function imageCache() {      
            var srcs = $api.domAll('.img');
            if (srcs.length > 0) {
                for (var i = 0; i < srcs.length; i++) {
                    (function(obj){
                        api.imageCache({
                            url: $api.attr(obj, 'srcs')
                        }, function(ret, err){
                            if( ret ){
                                 $api.attr(obj, 'src', ret.url);
                            }
                        });
                    })(srcs[i]);
                }
            }
        }
66666666666
7
帖子
2
勋章
853
Y币
可以发布到分享区,感谢分享
17
帖子
0
勋章
174
Y币
这个方法很不错!!!
14
帖子
3
勋章
2万+
Y币
我明天给分享一个Avalon 的方法吧。更简单一点。
258
帖子
4
勋章
1024
Y币
小明哥哥 发表于 2017-1-13 20:24
我明天给分享一个Avalon 的方法吧。更简单一点。

你写了这个方法了吗?方面分享下吗?
14
帖子
3
勋章
2万+
Y币
tanjingwaini 发表于 2017-3-10 20:59
你写了这个方法了吗?方面分享下吗?

我同事给写的。很简单的代码。我单独开贴发布一下吧。
现在转用vue了,回头写好vue的再发布一个vue的。
9
帖子
0
勋章
77
Y币
这个函数有个 bug,就是我的数据是用 ajax 从服务器是 获得的,而 imageCache 这个函数,的执行 在他们之前,所以 还要判断 Dom 有 么有加载完。这个 要如何解决?
12
帖子
1
勋章
1万+
Y币
方法很不错 感谢分享
12下一页
您需要登录后才可以回帖 登录

本版积分规则