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 相关文章推荐
JS中toFixed()方法引起的问题如何解决
Nov 20 Javascript
JS hashMap实例详解
May 26 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
Dec 26 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
Mar 06 Javascript
js 奇葩技巧之隐藏代码
Aug 11 Javascript
Express + Session 实现登录验证功能
Sep 08 Javascript
vue中的自定义分页插件组件的示例
Aug 18 Javascript
详解小程序设置缓存并且不覆盖原有数据
Apr 15 Javascript
vue实现路由切换改变title功能
May 28 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
Nov 20 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
Dec 04 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
学习php分页代码实例
2013/10/24 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
python类继承用法实例分析
2014/10/10 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Flask之请求钩子的实现
2018/12/23 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python能做什么 python的含义
2019/10/12 Python
python实现飞机大战小游戏
2019/11/08 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
C#如何进行LDAP用户校验
2012/11/21 面试题
大学军训感言1500字
2014/03/09 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
地球一小时活动总结
2015/02/27 职场文书
2016新年问候语大全
2015/11/11 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python