JS实现页面数据懒加载


Posted in Javascript onFebruary 13, 2020

页面数据懒加载。Div移动到可视区域再去ajax加载内容。

最近有需求做页面的多个table用于加载数据,但是用户浏览页面的时候不需要一次将页面所有的东西加载出来,比如页面上3个table就占满了,用户点进去第一眼也就只能看到3个。为了防止一次加载拖慢了页面的速度,所以之后的table我们要懒加载。即该table移动到了可视区域再去异步请求加载数据。

以下为目前实现的方法:

<!-- page lazyloading -->
<script>
$(function(){
  // 设置布尔值用于判断是否该DIV到达过可视区域
 var scrollflaga = true;
  // 监听滚轮事件
 $(window).scroll(function() {
  // 要加载的DIV的ID
  // 距离可视区域顶部的距离
 var a = document.getElementById("myDiv").offsetTop;
 if (scrollflaga == true) {
    // 判断
    // $(window).scrollTop()为返回滚动条的垂直位置
    // $(window).height()代表了当前可见区域的大小,即你看到的浏览器显示范围
   if (a >= $(window).scrollTop() && a < ($(window).scrollTop()+$(window).height())) {
      // 如果到达了可视区域,则设置其布尔值为false,防止一直调用下面函数,即只做一次ajax请求
     scrollflaga = false;
      // 你的ajax请求函数
     loadingFunction();
 }
  }
}
</script>

1、需要导入jquery文件

2、封装的不是很好,对于多的要加载的数据,比如有许多个div下的table要懒加载,就要设置对应的多个布尔值用于判断是否各个div是否加载,要申明个多变量(有多少个div就申明几个对应的变量)去获取他们距离屏幕顶部的高度然后做判断

3、目前使用的是该方法,有更好的方法的可以留言讨论,如果我又发现了更好的方法会持续更新

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
Dec 28 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
vue cli 全面解析
Feb 28 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
webpack file-loader和url-loader的区别
Jan 15 Javascript
uploadify插件实现多个图片上传并预览
Sep 30 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 #Javascript
原生JS与JQ获取元素的区别详解
Feb 13 #Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 #Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 #Javascript
JavaScript 中的无穷数(Infinity)详解
Feb 13 #Javascript
node.js使用stream模块实现自定义流示例
Feb 13 #Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 #Javascript
You might like
基于pear auth实现登录验证
2010/02/26 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
爬山算法简介和Python实现实例
2014/04/26 Python
跟老齐学Python之开始真正编程
2014/09/12 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
wxpython绘制音频效果
2019/11/18 Python
pyspark 随机森林的实现
2020/04/24 Python
python爬虫工具例举说明
2020/11/30 Python
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
医院护士专业个人的求职信
2013/12/09 职场文书
更夫岗位责任制
2014/02/11 职场文书
教师师德演讲稿
2014/05/06 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
2014年绿化工作总结
2014/12/09 职场文书
大学生创业事迹材料
2014/12/30 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL