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实现表格中相同单元格合并示例代码
Jun 26 Javascript
jQuery实现预加载图片的方法
Mar 17 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
JavaScript 链式结构序列化详解
Sep 30 Javascript
详解Javascript中DOM的范围
Feb 13 Javascript
微信小程序网络封装(简单高效)
Aug 06 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
May 26 Javascript
Vue Router中应用中间件的方法
Aug 06 Javascript
vue实现移动端div拖动效果
Mar 03 Vue.js
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
当海贼王变成JOJO风
2020/03/02 日漫
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
Vue中使用Sortable的示例代码
2018/04/07 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
Django实现发送邮件功能
2019/07/18 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
专项法律服务方案
2014/06/11 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
个人总结与自我评价
2015/02/14 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript