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

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

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

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5974366.html,如需转载请自行联系原作者

你可能感兴趣的文章
SQLSERVER PRINT语句的换行
查看>>
Web Service 的工作原理
查看>>
tesseract ocr文字识别Android实例程序和训练工具全部源代码
查看>>
嵌入式操作系统的调试
查看>>
DroidPHP-A PHP Webserver for android
查看>>
iOS用全局宏的概念理解xcode中的设置 preprocessor macros
查看>>
浮沉乱世,一些话对自己说
查看>>
桌面应用框架 OneRing
查看>>
解决Boost.Regex对中文支持不好的问题
查看>>
Error : Weblogic Maven Plugin deployment WebLogic 12c
查看>>
W3C小组宣布:HTML5标准制定完成
查看>>
dispatch_group_async 使用详解
查看>>
3d引擎列表
查看>>
[Ant] Ant之MacroDef—“宏
查看>>
WEB架构师成长之路-架构师都要懂哪些知识 转
查看>>
C#中使用TCP通信
查看>>
Swift入门篇-swift简介
查看>>
05 继承
查看>>
弧度和角度的转换
查看>>
[leetcode]Unique Paths II @ Python
查看>>