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 getElementsByClassName函数
Apr 01 Javascript
Javascript中找到子元素在父元素内相对位置的代码
Jul 21 Javascript
使用js修改客户端注册表的方法
Aug 09 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
移除AngularJS下URL中的#字符的方法
Jun 19 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
Aug 20 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
Vue.js实现模拟微信朋友圈开发demo
Apr 20 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 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会话(Session)实现用户登陆功能
2013/06/29 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
python pygame实现五子棋小游戏
2020/10/26 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python logging添加filter教程
2019/12/24 Python
Python requests获取网页常用方法解析
2020/02/20 Python
如何理解python面向对象编程
2020/06/01 Python
python属于解释语言吗
2020/06/11 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers