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 相关文章推荐
JavaScript中出现乱码的处理心得
Dec 24 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
Javascript的一种模块模式
Sep 08 Javascript
js禁止页面使用右键(简单示例代码)
Nov 13 Javascript
Spring MVC中Ajax实现二级联动的简单实例
Jul 06 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
浅谈Node Inspector 代理实现
Oct 19 Javascript
使用preload预加载页面资源时注意事项
Feb 03 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
Jul 26 Javascript
解决Vue-cli无法编译es6的问题
Oct 30 Javascript
ReactRouter的实现方法
Jan 25 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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
树结构之JavaScript
2017/01/24 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
jQuery复合事件用法示例
2017/06/10 jQuery
详解Angular路由之路由守卫
2018/05/10 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python中的闭包总结
2014/09/18 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python决策树之C4.5算法详解
2017/12/20 Python
用python制作游戏外挂
2018/01/04 Python
Python中文件的读取和写入操作
2018/04/27 Python
python:动态路由的Flask程序代码
2019/11/22 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
文秘专业个人求职信
2013/12/22 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
环保建议书作文300字
2015/09/14 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
Python 实现定积分与二重定积分的操作
2021/05/26 Python