博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apiCloud实现加载更多效果,基本完美~
阅读量:6554 次
发布时间:2019-06-24

本文共 2549 字,大约阅读时间需要 8 分钟。

apiCloud实现加载更多效果

1.接口支持,加入参数page。

$page = $this->_request('page','trim','1');$pagesize = 10; // 默认获取10条

2.利用limit获取数据

select * from sh_category limit 20;select * from sh_category limit 0,10; // 第一页select * from sh_category limit 10,10;// 第二页

程序处理

$goods = $this->where($where)->limit(($page-1)*$num,$num)->order($order)->select();

第一页,就是从0,10。第二页,就是10,10。

3.接口提示下一页是否有数据,以及当前页

$this->outData['status'] = '1';$this->outData['msg']    = '获取成功';$this->outData['info']['goods']   = $goods;$this->outData['info']['page']   = $page;$this->outData['info']['category_id']  = $category_id;if (count($next_page_goods) > 0) {   $this->outData['info']['next'] = '1'; // 还有数据} else {   $this->outData['info']['next'] = '0'; // 已经没有数据}

4.前端通过doT处理

这里有个ajaxGetMore方法。处理加载更多数据。

设置一个base_area,专门装填上一页的数据。下一页的数据,继续在info_area中展示。

1)默认的ajax获取第一页数据js
// 获取分类商品信息    api.ajax({        url: BASE_SH_REQUEST_URL+'/?g=Api&m=Goods&a=getCategoryOptimizedGoods',        method: 'get',        data: {            values: {                category_id: category_id            }        }    }, function(json, err) {        if (json.status == '1' || json.status == '4') {            var interText = doT.template($("#info_tmpl").text());            $("#info_area").html(interText(json.info));        } else {            var toast = new auiToast();            toast.fail({                title: json.msg,                duration: 2000            });        }    });
2)ajaxGetMore获取更多js
// 获取更多// page为下一页的数值function ajaxGetMore(category_id,page) {    var base_area = $api.byId('base_area');     var goods_data= $api.byId('goods_data');    $api.append(base_area,$api.html(goods_data));    api.ajax({        url: BASE_SH_REQUEST_URL+'/?g=Api&m=Goods&a=getCategoryOptimizedGoods',        method: 'get',        data: {            values: {                category_id: category_id,                page:page,            }        }    }, function(json, err) {        if (json.status == '1' || json.status == '4') {            var interText = doT.template($("#info_tmpl").text());            $("#info_area").html(interText(json.info));        } else {            var toast = new auiToast();            toast.fail({                title: json.msg,                duration: 2000            });        }    });}

核心就在这里

var base_area = $api.byId('base_area'); var goods_data= $api.byId('goods_data');$api.append(base_area,$api.html(goods_data));

每次点击加载更多,都向base_area区域中把上一页的goods_data数据填入。通过append方法,可以很好的处理这种填入效果。

append,描述:在DOM元素内部,最后一个子元素后面插入HTML字符串。

html,描述:获取或设置DOM元素的innerHTML。

基本完美~

422101-20161018180932076-445770979.gif

转载地址:http://eatco.baihongyu.com/

你可能感兴趣的文章
程序源系统与当前系统不一致:Carry out repairs in non-original systems only if urgent
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
程序中的魔鬼数字
查看>>
SVN高速新手教程
查看>>
session cookie
查看>>
如何在Vblock里配置Boot from SAN
查看>>
ZBar之ZBarReaderViewController
查看>>
Nuget~管理自己的包包~丢了的包包快速恢复
查看>>
Hadoop单机模式安装-(3)安装和配置Hadoop
查看>>
$.extend({},defaults, options) --(初体验三)
查看>>
自己主动瀑布流布局和实现代码加载
查看>>
maven的一些依赖
查看>>
腾讯云短信服务使用记录与.NET Core C#代码分享
查看>>
jQuery hover() 方法
查看>>
sql语句
查看>>
android 一步一步教你集成tinker(热修复)
查看>>
到底有多少内存
查看>>
centos7.3 安装ovirt-engine4.0 版本
查看>>
putty、xshell的密钥认证
查看>>
Jenkins+git+tomcat 自动化持续部署
查看>>