前端【1】-图片滚动加载

前面为了赶时间,拷贝了一段滚动加载的效果(http://www.cnblogs.com/Darren_code/archive/2011/07/21/LoadImage.html),结果列表一长,导致页面其他脚本执行非常缓慢,造成很大的性能问题,最后忍无可忍,决定自己重新编码。思路是给列表上每20行编为一个区间,监听页面滚动事件,一旦下一个区间即将可见,加载下一个区间的图片,这样如果不是滚动很快的话,基本上看不到过渡图片的,运行下来,结果让人满意,除了往上滚动等问题没有考虑之外,基本上没有问题了。

    var positions = [];//标记位置
    var flags = [];//标记是否已经加载
    function initialPositions() {
        for (var i = 20, len = @(Model.Data.Count); i <= len; i+=20) {
            var item = document.getElementById("item" + i);
            positions.push(item.getBoundingClientRect().top);
            flags.push(false);
        }

        //判断是否有余数
        if(@(Model.Data.Count) % 20 >= 1){
            flags.push(false);//增加一个区间
        }
    }
    initialPositions();

    window.addEventListener("scroll",function(){
        var pos = document.body.scrollTop;

        //判断当前区间
        for (var i = 0, len=positions.length; i < len; i++) {
            if(positions[i] >= pos){
                break;
            }
        }

        loadSection(i);
        loadSection(i+1);
    });

    function loadSection(current){
        //判断当前区间是否已经加载
        if(flags[current] == false){
            for (var i = 1; i <= 20; i++) {
                var head = document.getElementById("head" + (20*current+i));
                if(head){
                    var attrSrc = head.getAttribute("xsrc");
                    head.setAttribute("src", attrSrc);
                }
            }

            flags[current] = true;
        }
    }
    loadSection(0);
时间: 2024-10-07 04:30:49

前端【1】-图片滚动加载的相关文章

实现图片滚动加载以及排版优化

最近闲来没事,做了一个画江湖图片滚动加载的demo,大家感兴趣可以下来看一下 以下为界面截图: 图片会随滚动条的拖动动态加载,目前来说只是加载的本地的资源,大家可以从后台抓取数据来实现懒加载. 支持图片点击然后大图来查看: 代码已经放到git上了,欢迎下载试用 https://github.com/tuohaibei/ScroolLoading.git

前端优化-图片懒加载

一.什么是懒加载 懒加载技术(简称lazyload)是对网页性能优化的一种方案.lazyload的核心是按需加载,避免网页打开时加载过多资源,让用户等待太久,在适当的时候加载用户需要的资源(这里用户需要的资源指该资源呈现在浏览器可视区域).这里我们主要是对img标签使用懒加载技术,使用jquery的query.lazyload.js库实现. 通俗的讲就是:当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次),只有当图片出现在浏览

前端页面实现滚动加载数据的案例

1.我们在项目中经常会有这样的需求就是需要滚动加载数据: 2.原理利用分页的原理即可实现:见下面代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &l

前端实现图片懒加载

项目中经常会遇到多图片需要加载的情况,如果一次性全部加载完耗时较多,也较慢.这时就需要用到图片懒加载,常用的有jqueryLazyload这个插件.下载地址:https://github.com/helijun/helijun/blob/master/plugin/lazyLoad/jquery.lazyload.js 使用时,首先得引入jquery,然后再引入jqueryLazyload这个插件,原理就是先不给img加src路径,然后把路径加在属性节点data-original上,在满足条件需

网页前端开发,对于图片慢加载简介

http://www.cnblogs.com/qingseyuandi/p/loadingLater.html 网页前端的图片慢加载给网页显示的成本降低了不少,因此我在这边简单的介绍一下慢加载的一个技术原理,希望能起到抛砖引玉的作用,写的不好的地方希望指正,谢谢~~   技术背景 现在的网页系统,对于一些对图片资源比较多,并且一次性无法浏览完整个网页的情况下,图片慢加载可以提高客户端的体验,如IT大头:淘宝,网易,新浪等等...  技术原理   技术说穿了其实也就那么回事,懂了就简单了,呵呵~

移动设备的HTML页面中图片实现滚动加载

如今移动互联网风靡全球,移动页面的元素也是丰富多彩,一个移动页面的图片超过10张已经是再正常不过的事情了.但是相对,很多移动用户还停留在2G,3G这样的网络中.那么这样带宽的用户,在浏览这样的页面时,要把页面加载完毕,可能就需要10s,20s甚至更多,严重影响用户的体验.针对这样的问题,让页面中的图片滚动加载(图片出现在显示器屏幕上时再加载图片)显得非常重要!这样也可以有效地节省我们服务器的带宽和解决请求大并发的问题. 1.效果图.     这是加载过程中的图片菊花显示            

图片懒加载

一.什么是图片滚动加载? 通俗的将就是:当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次),只有在图片出现在浏览器的可视区域内时,才设置图片真正的路径,让图片显示出来.这就是图片懒加载. 二.为什么要使用这个技术? 比如一个页面中有很多图片,如淘宝.京东首页等等,如果一上来就发送这么多请求,页面加载就会很漫长,如果js文件都放在了文档的底部,恰巧页面的头部又依赖这个js文件,那就不好办了.更为要命的是:一上来就发送百八十个请求

前端性能优化--图片懒加载(lazyload image)

图片懒加载(当然不仅限于图片,还可以有视频,flash)也是一种优化前端性能的方式.使用懒加载可以想要看图片时才加载图片,而不是一次性加载所有的图片,从而在一定程度从减少服务端的请求 什么是懒加载 懒加载怎么个懒法,就是你不想看就不给你看,我也懒得加载出来,懒得去请求.通俗的说就是你不要就不给你,怎么地.举个栗子,比如在进入某个页面的时候,它会有许多的图片,有些图片可能在下面,当我们点进页面但没有滑动下去或没看完整个页面,那么下面的图片就会"没用",加载了也白加载,而且还降低了网页的加

滚动加载图片

做了一个粗糙的滚动加载图片例子,先分享一下,后续不断完善. 基本功能是这样的: 1.页面一共有7层,每一层可以认为是不同类型的商品: 2,页面初始化时,只加载第一层的图片和数据等: 3,滚动时,动态加载图片:(一层一层的加载) 4,如果已经加载过的层,不再加载. 样式:     * {      margin: 0px;      padding: 0px;     } body { background: rgb(250, 222, 222); } .container { width: 95