AngularJS上拉加载问题解决方法


Posted in Javascript onMay 23, 2016

项目中始终存在一个问题:当在搜索栏输入关键词后(见图1),按照既定的业务逻辑应该是服务端接收到请求后,首先返回查询的前7条数据,待客户端出现上拉加载时,继续查找另外7条数据。但实际情形是不确定的,在服务端控制台(见图2)可看到begno一直到了126,也就是相当于客户端往服务端请求了127次,这是一个令人无法忍受的结果。

AngularJS上拉加载问题解决方法 

图1 客户端搜索栏

AngularJS上拉加载问题解决方法

图2 服务端控制台

可以断定是客户端的业务逻辑出现了问题。返回到客户端,查看源码逻辑,修改如下:

控制器

$scope.medsearchMore = function() { 
console.log("上拉加载....." + isfinished); 
if (isfinished == 0) { 
begno += pcnt; 
var data = { 
"begno" : begno, // 起始序号 
"pagenum" : pagenum, // 每页返回条数 
"searchby": searchby 
}; 
if (searchType == 1) { 
data.classid = searchKey; 
console.log(data.classid); //--------1 
appCallServer($http, "9002", data, function(data) { 
console.log("下拉刷新查询结果rootScope.med:" + JSON.stringify(data.data)); 
for (var i = 0; i < data.pcnt; i++) { 
$rootScope.med.push(data.data[i]); 
} 
// 更新状态 
isfinished = data.isfinished; 
// 药品已查询完毕 
if(isfinished == '1'){ 
$scope.noMore = true; 
}else{ 
$scope.noMore = false; 
} 
pcnt = data.pcnt; 
}, function(data) { 
// 药品已查询完毕 
$scope.noMore = true; 
$ionicLoading.show({ 
template: data.errtext 
}); 
$timeout(function() { 
$ionicLoading.hide(); 
}, 1200); 
}); 
} 
} else { 
// 药品已查询完毕 
$scope.noMore = true; 
} 
$timeout(function() { 
$scope.$broadcast('scroll.infiniteScrollComplete'); 
}, 1200); 
};

视图

<!--当用户到达页脚或页脚附近时,ion-infinite-scroll指令允许你调用一个函数 。当用户滚动的距离超出底部的内容时,就会触发你指定的on-infinite--> 
<!--当没有更多数据加载时,就可以用一个简单的方法阻止无限滚动,那就是angular的ng-if指令--> 
<!--设置noMore初始值为true首次即点击分类查询时不进行下拉加载操作--> 
<ion-infinite-scroll on-infinite="medsearchMore()" distance="0.01%" icon="ion-loading-c"></ion-infinite-scroll> 
<div class="item" ng-if="noMore" align="center"><p>没有更多的药品了</p></div>

经过以上修改,可以实现避免不必要的请求。

AngularJS上拉加载问题解决方法

Javascript 相关文章推荐
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
jQuery 无刷新分页实例代码
Nov 12 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
Dec 08 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 Javascript
简述JS控制台的使用
Jul 15 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
Dec 05 Javascript
详解vue挂载到dom上会发生什么
Jan 20 Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
js实现随机点名功能
Dec 23 Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 #Javascript
浅析JavaScript 箭头函数 generator Date JSON
May 23 #Javascript
用js实现放大镜的效果的简单实例
May 23 #Javascript
jQuery实现摸拟alert提示框
May 22 #Javascript
javascript实现标签切换代码示例
May 22 #Javascript
超实用的JavaScript代码段 附使用方法
May 22 #Javascript
JavaScript数组合并的多种方法
May 22 #Javascript
You might like
PHP执行速率优化技巧小结
2008/03/15 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
简述vue状态管理模式之vuex
2018/08/29 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
python实现祝福弹窗效果
2019/04/07 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
公司营业员的自我评价
2014/03/04 职场文书
应届生面试求职信
2014/07/02 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
社区灵活就业证明
2014/11/03 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS