js移动端滑动一个屏幕再加载新的数据以及ajax同步请求
来源:互联网 发布:windows.old删除不了 编辑:程序博客网 时间:2024/05/04 02:38
js移动端滑动一个屏幕再加载新的数据
现在我们有一个美女图片的列表页,在这个列表页中有上千个美女的小图片。如果一次加载全部的图片那么需要一些时间,用户体验不是很好,因此采用边滑动边加载,那么现在的问题是滑动到什么程度再加载图片呢?
第一种方案,滑动到底部再加载新的图片(每次加载18个图片)
$(function(){ $(window).scroll( function(){ if ((document.documentElement.scrollHeight) == (document.documentElement.scrollTop | document.body.scrollTop) + document.documentElement.clientHeight){ alert("加载新的图片"); } }); });滑动到屏幕底部再加载新的图片,有一个问题是:当滑动到底部再加载图片需要等会新的图片数据才返回,体验也不是很好。
第二种方案是:滑动一个屏幕再加载新的图片
<ul id="beautityList" > <li > <a > <img _src="https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=473474780,244297065&fm=58" alt="" class="pic"> </a> <p class="fan">范冰冰 <span class="age">1981</span></p> <p >fanbingbing<span></span><em class="bingbing"></em></p> </li> <li > <a > <img _src="https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=754874951,2913294364&fm=58" alt="" class="pic"> </a> <p class="fan">李冰冰 <span class="age">1973</span></p> <p >libingbing<span></span><em class="bingbing"></em></p> </li> .... </ul>
通过调试,手机不管是android还是ios,每滚动一次,document.documentElement.scrollHeight、document.documentElement.scrollTop或document.body.scrollTop、document.documentElement.clientHeight,这三个值有一个变化规律那就是 document.body.scrollTop 或document.documentElement.scrollTop以100递增增加,即每滚动一次, document.body.scrollTop 或document.documentElement.scrollTop的值加100, document.body.scrollTop 或document.documentElement.scrollTop的初始值是0
因为不同的手机屏幕大小不同,所以手机滚动一个屏幕不同的手机 document.body.scrollTop 或document.documentElement.scrollTop的值是不同的,因此不能 document.body.scrollTop 或document.documentElement.scrollTop等于某个值(该值是100的倍数)来判断已经滚动了一个屏幕了。
用$(window).height()来获得手机的屏幕高度大小,因为不能保证每个手机的屏幕高度是100的倍数所以对手机的屏幕进行四舍五入是之成为100的倍数
具体代码如下
$(function(){ $(window).scroll( function(){ var heightwindow = $(window).height(); var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; var heightwindowsishewuru = Math.round(heightwindow/100) * 100; if((document.body.scrollTop % heightwindowsishewuru == 0 && document.body.scrollTop != 0 && document.documentElement.scrollTop == 0) || (document.body.scrollTop == 0 && document.documentElement.scrollTop % heightwindowsishewuru == 0 && document.documentElement.scrollTop != 0)){ //当往下滑一个屏幕的时候再加载 alert("加载新的图片");} }); });
ajax同步请求
在这个有上千个美女图片的列表页中有排序的需求,如根据年龄进行排序,如果采用ajax异步请求就不能保证列表页的数据按年龄进行排序。因为如果采用ajax进行异步请求,就不能保证第一次请求的数据比第二次请求的数据先到。要想列表页的数据按年龄进行排序,就必须采用ajax同步,即ajax请求的数据必须返回后才可以进行下一次的ajax请求,根据实验得出只要在有网的情况的ajax不会出现请求失败的情况
var _url = "https://www.baidu.com/";$.ajax({type: "POST", data:{"k":"hello"}, url: _url,cache:false,async:false, //true:异步,false:同步。success: function(data){ alert("ajax请求成功"); }, error: function(){ alert("ajax请求失败"); } })
0 0
- js移动端滑动一个屏幕再加载新的数据以及ajax同步请求
- AJAX 同步请求的JS
- 实现Fragment数据的缓加载,即滑动到当前页再加载数据
- Ajax以及同步请求、异步请求
- ajax的同步请求
- 移动端阻止屏幕滑动
- 移动端屏幕禁止滑动
- AJAX中的请求方式以及同步异步的区别
- AJAX中的请求方式以及同步异步的区别
- AJAX中的请求方式以及同步异步的区别
- AJAX中的请求方式以及同步异步的区别
- AJAX中的请求方式以及同步异步的区…
- 一个简单的ajax请求数据
- js的ajax的异步和同步请求的问题
- Fragment可见再加载数据的方法
- Ajax 同步和异步请求数据结果的差异性
- jQuery.ajax异步变成同步的请求JSON数据例子
- unity 安卓端通过滑动屏幕实现对物体的移动以及缩放
- The meaning of "argc" and "argv" in programming
- dpkg
- Mina、Netty、Twisted一起学(五):整合protobuf
- Yii2 数据操作Query Builder
- IOS tabbar 点击刷新页面
- js移动端滑动一个屏幕再加载新的数据以及ajax同步请求
- zypper
- NLP学习笔记1 text processing
- lua学习总结——C API
- 移植alsa-lib与alsa-utils
- iOS 彻底学会使用delegate
- 从“==”变量与值位置这点小事想到的
- LengthFieldPrepender和LengthFieldBasedFrameDecoder
- yum