zoukankan      html  css  js  c++  java
  • 世界疫情——懒加载优化

    起因:疫情查询项目部署到我那个小服务器上一次性加载每个国家的疫情折线图太慢(当然这也没必要,太浪费流量了),于是上网查询了一些懒加载方法。

    体验网址:http://116.62.178.231:8080/yiqing/world.html,数据每天更新中。可能由于浏览器版本不同,有的浏览器无法正常显示。

    友情提示:请不要用恶意访问,恶意爬取。每次访问我后台有记录。

    解决方案:窗口设置滚动监听事件,如果窗口滑到底就实现一次加载。

     1 var clock; 
     2 var num=0;    //计数器
     3     $(window).on('scroll',function(){
     4         if(clock){
     5             clearTimeout(clock);       //避免滑动过快
     6         }
     7         clock = setTimeout(function(){  //延时0.2触发
     8             num=start(num);
     9         },200)
    10        
    11     })

    start函数:

      function start(i){     //开始执行
            if(i>=size) return i;   //判断是否超出范围
            if (isShow()) {      
                loadCharts(i);
                return i+1;
            }
            return i;
         
        }

    判断是否滑到底的函数如下:

         function isShow(){ //判断是否显示
         var scrollTop = $(window).scrollTop(); //窗口相对于滚动条顶部的偏移量 var scrollHeight = $(document).height(); //文档的高度,即整个html页面 var windowHeight = $(window).height(); //浏览器窗口的高度
         /*这里加2是因为窗口偏移量与浏览器高度的和不一定与文档百分百相等,
         可能会差零点几,如果直接写等于可能这个功能就无法实现
         */
         return (scrollTop + windowHeight+2 >= scrollHeight)?true:false; }

    实现效果:

    初始界面:

    往下翻动:

     项目链接:

    链接:https://pan.baidu.com/s/1CDjj2oIFOhc0NHoeeq10EQ
    提取码:1lce

  • 相关阅读:
    关于JDK和JRE的一些总结
    Jackson 格式化日期问题
    CentOS6.8安装mysql5.6
    CentOS6.8安装JDK1.7
    VMware NAT方式 CentOS 6.8配置静态IP
    CentOS6.8使用源码安装Git
    关于SourceTree License
    记录平时遇到的问题
    使用React-Router遇到的那些坑
    移动端响应式布局好文收集
  • 原文地址:https://www.cnblogs.com/haheihei/p/12641558.html
Copyright © 2011-2022 走看看