• 图片延时加载LazyLoad真的是LazyLoad吗?


       今天给鬼片电影网在做改版,因为首页大量使用了图片,整个图片列表占据了2-3屏,对于用户和服务器来说,一次性加载这么多的图片都是一件很糟糕的事情,影响用户体验不说,还加大了服务器的鸭梨,实现图片延时加载或者滚动才加载图片,那你肯定会听说过LazyLoad这个Jquery插件了!

    首先,我们来看看他官方的使用:

    <script src=”/content/js/jquery.min.js”></script>
    <script src=”/content/js/jquery.lazyload.js”></script>
    
    <script type=”text/javascript”>
    $(document).ready(function(){
    $("img").lazyload({
              placeholder : "loading.gif",
              effect : "fadeIn"
        });
    });
    </script>

       我们得引用Jquery和Lazyload.js这两个脚本,LazyLoad的工作原理是先在<img>下创建original属性,并把src属性值赋值给original,然后再把src的值修改成你设置的 placeholder的值。当滚动条到达图片位置时,再把original的属性赋值给src。这个时候向服务器发出一个HTTP请求,确认下有没有修改,服务器返回一个304状态,等于本来一遍HTTP请求能完成的工作,它用了2遍,非但没有减少开支,还增加开销;

        还有一个方法非常方便的检测是否真的延时加载,打开图片列表的页面,先不要滚动,等待一阵子,然后打开Firebug开发者工具或者其他的网络监控工具,此时滚动页面,留意是否有图片加载的请求,你会发现是没有的,因为图片已经在你等候的那段时间已经加载完了,所以说,这个LazyLoad不是真正的延时加载,而是实现了那样的效果欺骗了你的感情而已。

    既然是开源的组件,那么可以为我所用,且看我怎么优化代码,劝浪子回头:

       打开LazyLoad的脚本,找到红色框的部分,第一处注视掉,第二处为增加的代码。然后页面上图片的写法也有所改变;

    原来的写法是:<img src=”A.jpg” />

    现在修改为这:<img original=”A.jpg”  src=”loading.gif” />

    现在,你再用刚才那个方法试试看,实现了真正的延时加载,而不仅仅是效果。

    dotnetgeek(这个是我除了博客园外同步更新的博客) 提供已经修改好的源码,亲测可用:百度网盘下载地址

  • 相关阅读:
    java--递归删除目录
    java--获取文件夹大小
    我经历中最重要的三位老师
    我的自我介绍
    如何判断多选框是否选中?
    控制总线 数据总线和地址总线是三根线吗
    单元格中间没有边框
    页面上插入bootstrap Glyphicons时遇到的问题
    浏览器回退键——重复提交
    【excel】excel转成csv乱码问题
  • 原文地址:https://www.cnblogs.com/waynechan/p/2935279.html
Copyright © 2020-2023  润新知