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 相关文章推荐
15款jQuery分布引导插件分享
Feb 04 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
Dec 02 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
Vue Router 实现动态路由和常见问题及解决方法
Mar 06 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 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
十大“创意”战术!
2020/03/04 星际争霸
php.ini中文版
2006/10/09 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
美国购车网站:TrueCar
2016/10/19 全球购物
韩国现代百货官网:Hmall
2018/03/21 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
迟到检讨书800字
2014/01/13 职场文书
三方合作协议书范本
2014/04/18 职场文书
公司任命书模板
2014/06/06 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
党支部四风整改方案
2014/10/25 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
Python装饰器详细介绍
2022/03/25 Python