通过ajax请求实现加载更多——常见的问题
2016-11-25 16:21
281 查看
这里tity主要给大家讲两个问题:
一是加载中动画,二是关于“没有更多了”的判断。
一、加载中动画,可以增强用户体验度,给用户一种当前页面正在处理的感觉,而不是没有任何反应,让用户感觉摸不着头脑。
实现方法:在ajax请求中添加beforeSend方法。
示例代码:
这里的#getMore代表的就是加载更多的按钮,而#loadingMask表示的就是加载中的动画,这里的动画可以用gif来实现,也可以通过CSS3加载中动画来实现。
二、关于没有更多了的功能的判断,主要是判断来自服务器的返回的数据的长度,假定我们与服务端约定好,每次请求返回20条数据,那么如果返回的数据少于20的时候,我们就认为没有更多了。
示例代码:
这部分功能的实现主要在success函数里面,#noMore代表的就是没有更多了的div。
在这里特别注意一点,就是success中的插入数据的循环操作中,i每次应该与返回的data的长度相比,而不能与我们默认的20相比,否则会报错。
一是加载中动画,二是关于“没有更多了”的判断。
一、加载中动画,可以增强用户体验度,给用户一种当前页面正在处理的感觉,而不是没有任何反应,让用户感觉摸不着头脑。
实现方法:在ajax请求中添加beforeSend方法。
示例代码:
<script type="text/javascript"> $('#getMore').click(function(){ $.ajax({ type: 'get', url: 'https://www.demo.com', data: data, dataType: 'json', beforeSend: function(){ $('#loadingMask').show(); $('#getMore').hide(); }, success: function(data) { $('#loadingMask').hide(); $('#getMore').show(); }, error: function(data) { $('#loadingMask').hide(); $('#getMore').show(); } }); }); </script>
这里的#getMore代表的就是加载更多的按钮,而#loadingMask表示的就是加载中的动画,这里的动画可以用gif来实现,也可以通过CSS3加载中动画来实现。
二、关于没有更多了的功能的判断,主要是判断来自服务器的返回的数据的长度,假定我们与服务端约定好,每次请求返回20条数据,那么如果返回的数据少于20的时候,我们就认为没有更多了。
示例代码:
<script type="text/javascript"> $(function(){ $('#getMore').click(function(){ $.ajax({ type: 'get', url: 'https://www.demo.com', data: data, dataType: 'json', beforeSend:function(){ $('#loadingMask').show(); $('#getMore').hide(); }, success: function(data) { $('#loadingMask').hide(); $('#getMore').show(); if(data.length > 0){ for(var i = 0; i < data.length; i++){ // 这里是插入数据的操作 } if(data.length < 20){ $('#getMore').hide(); $('#noMore').show(); } } }, error: function(data) { $('#loadingMask').hide(); $('#getMore').show(); } }); }); }) </script>
这部分功能的实现主要在success函数里面,#noMore代表的就是没有更多了的div。
在这里特别注意一点,就是success中的插入数据的循环操作中,i每次应该与返回的data的长度相比,而不能与我们默认的20相比,否则会报错。
相关文章推荐
- dhl:asp.net mvc下用jQuery通过AJAX 实现HTTP 请求加载远程数据
- Ajax请求ashx返回json数据的常见问题
- jquery ztree 一次性通过URL请求加载整棵树,思路实现
- 关于js 方法,实现ajax请求时,return false/true无效的问题
- jQuery+PHP+ajax实现微博加载更多内容列表功能
- jquery ajax() 404错误,406错误解决方案 遍历json数组 append到指定位置 ajax实现点击加载更多按钮
- 关于用ajax长链接轮询方式实现comet时,其他ajax请求被阻塞的问题
- ExtJS Tree利用json(直接传List TreeNode,不需要转化为JSONArray或通过JSP传)在Struts 2实现Ajax动态加载树结点
- thinkphp+ajax+jquery异步实现加载更多
- 使用Apache通过JK实现多Tomcat负载均衡集群时,Apache不能将请求分发给Tomcat处理(即Apache反向代理不成功)的问题
- php+ajax+jquery实现点击加载更多内容
- ajax实现省级联动以及网站项目中通过写一个过滤器全局配置解觉整个网站的乱码问题
- jQuery+PHP+ajax实现微博加载更多内容列表功能
- 通过jsonp解决ajax的跨域请求问题
- c#,jquery easy ui通过ajax实现异步加载tree
- 文件上传 通过隐藏iframe的方式来实现ajax上传文件并返回处理结果 ie乱码问题解决
- 关于在form中通过ajax请求传递数据时出现异常的问题
- Ajax请求ashx返回json数据的常见问题
- ListView实现下拉刷新和上拉加载更多时遇到的诸多问题与解析
- 通过ajax加载外部json文件,并实现加载照片