使用ajax实现移动端懒惰加载
来源:互联网 发布:java读取json数据 编辑:程序博客网 时间:2024/04/28 22:48
这个懒惰加载的叫法是很久以前听说过的,当时感觉会,哈哈,就没细做过。这次正儿八经的改了很多个这种形式,就来记录一下。
至于它叫不叫这个名字就再说了。我还习惯叫他异步加载。正文如下:
1.首先要检测屏幕的滑动
var flag = 0; 用来标记每一次加载的状态
var currentPage = 1;
$('.page').scroll(function(){
if (flag==0){ var a = ""; if ($('#downloadMoreData').length > 0){ a = document.getElementById("downloadMoreData").offsetTop; if (a >= $(this).scrollTop() && a < ($(this).scrollTop()+$(window).height()-40)) { flag = -1; downloadMoreData(); } } };});
2. 屏幕移动超过一定范围则改变 flag状态,然后执行 downloadMoreDate()方法
function downloadMoreData(index) { currentPage++; ajaxLabelCon(index);}
这里主要是将当前页进行累加,那么这样的话就应该先将currentPage 初始化一个值。写到最开始的位置它主要用来标记加载了多少页,然后根据总的页数和它比较,就能判断出各种状态。3.向接口请求数据 ajaxLabelCon():function ajaxLabelCon(index){ var start = pernum * (currentPage -1); $.ajax({ url: url, type: 'post', dataType: 'json', data:{ "currentPage": currentPage, "typeid":categoryPreID, 'start':start, "pernum":pernum, '_csrf':csrf}, success: function(result){ if (result.result == "success") { listExperters(result); }else{ dataLoadedError(result.message); } } })}这个方法是没有经过加工,就为了简单显示其原理。json数据返回的格式必须包括'currentPage'=>1,'start'=>0,'pernum'=>3,'total'=>6,'pages'=>2,这种形式,这里主要还是为了方便判断,是加载下一页还是加载已经完成。4.循环出数据就行了function listExperters(result){ var list = ''; for(var i=0;i<result.list.length;i++){ list +=''; } $('#professList').append(list); showMessage(result);}5.然后显示各种提示状态function showMessage(result){ if (result.page.pages > result.page.currentPage) { if (flag=-1) { flag = 0; }; $('#downloadMoreData').remove(); $('#professList').append('<a id="downloadMoreData" class="appui_loadmore fs32 fc-greyabc">拼命加载中<i class="loadmore"></i></a>'); }else if (result.page.pages == result.page.currentPage && result.page.pages >= 1) { $('#downloadMoreData').remove(); $('#professList').append('<a class="appui_loadmore fs32 fc-greyabc">已经没有了</a>'); }else if(result.list.length == 0){ $('#professList').html(commonNoMoreContent("暂无问答")); }}到此结束。指的注意的是要在初始状态加上正在加载的标签,这样才能从第一步开始执行。<a id="downloadMoreData" class="appui_loadmore fs32 fc-greyabc">拼命加载中<i class="loadmore"></i></a>
阅读全文
0 0
- 使用ajax实现移动端懒惰加载
- 懒惰加载
- thinkphp+ajax 移动端实现滚动到底部加载数据(无刷新动态加载数据技术的应用)
- lazyload使用ajax实现图片异步加载
- lazyload.js 懒惰加载框架下载及使用
- javascript懒惰加载
- ajax 实现加载进度条
- 使用ajax来实现页面的局部加载
- 手机移动端上滑懒加载实现
- jquery实现的ajax多图上传(移动端)
- 模仿懒惰加载的图片加载方法
- js 实现无限加载分页(适合移动端)
- 移动端无限滚动加载 js实现原理
- web移动端下拉加载数据简单实现
- 移动端下拉加载更多DEMO(纯js实现)
- 基于Vue2实现的上拉加载之移动端
- js 实现无限加载分页(适合移动端)
- Ajax 数据加载的实现
- 98
- 99
- 关于int8_t,uint8_t.....等数据类型的问题
- Java学习之路—四大名著介绍以及学习java经典书籍下载
- IntelliJ IDEA / Tomcat
- 使用ajax实现移动端懒惰加载
- C语言——实例019 完数
- C++中关于const
- 大数据 (八)Hadoop-MapReduce 运行环境之 yarn环境搭建
- 整型与浮点型数据在计算机内存中的存储
- 1+2..+100、for...in..循环、\的用法
- poj 1182 食物链 并查集 的 高水平用法
- JDBC之将Dao的实现通过配置文件切换成Spring的实现
- 窗宽窗位