详解angular分页插件tm.pagination二次触发问题解决方案


Posted in Javascript onJuly 20, 2018

今天在学习angularjs的分页插件时遇到了一个前端的问题,谷歌浏览器开发者模式调试的时候发现每次点击分页刷新按钮会触发两次后台请求,ajax向后台发送了两次请求,这对于强迫症患者来说是一个比较恶心和感到不舒服的事情。

于是在网上也找到了靠谱的解决方案:http://jqvue.com/tm.pagination/ ,且在此维护者的这个版本中解决了此问题,同时注意 angularjs版本的配合使用。但是不满足于现状,我还是找到了自己的解决方案,不打针不吃药,就这么简单!粗暴!It's time to show the code!!

var app = angular.module("shopping", [ 'pagination' ]);
  app.controller("brandController",
      function($scope, $http) {
        $scope.reloadList = function() {
          //切换页码 
          $scope.findPage($scope.paginationConf.currentPage,
              $scope.paginationConf.itemsPerPage);
        }
        $scope.reload = true;
        //分页控件配置 
        $scope.paginationConf = {
          currentPage : 1,
          totalItems : 10,
          itemsPerPage : 10,
          perPageOptions : [ 10, 20, 30, 40, 50 ],
          onChange : function() {
            if(!$scope.reload) {
              return;
            }
            $scope.reloadList();//重新加载 这个方法会重复调用两次
            $scope.reload = false;
            setTimeout(function() {
              $scope.reload = true;
            }, 200);
          }
        };
        //分页
        $scope.findPage = function(page, rows) {
          
          $http.get(
              '../goods/findAll?pageNum=' + page + '&pageSize='
                  + rows).success(function(response) {
            $scope.list = response.rows;
            $scope.paginationConf.totalItems = response.total;//更新总记录数
          });
        }

      });

核心代码我已经用黑色字体加粗标识出来了,定义一个全局变量reload存于$scope上,第二次触发加载reload的时候就发现这个全局变量为false状态,则直接return。之后再用定时器setTimeout在200毫秒之后将其归位。下一次刷新不会受影响且每次刷新只会发送一次ajax,提升请求质量与用户体验。

注:此方法不仅限于实现ajax的请求重复发送问题,其他类似的重复行为可参考本实例的实现思想,注意全局变量的合理使用,减少内存浪费问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
Jquery简单分页实现方法
Jul 24 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
Aug 29 Javascript
使用FormData实现上传多个文件
Dec 04 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
javascript用defineProperty实现简单的双向绑定方法
Apr 03 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 #Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 #Javascript
JS+H5 Canvas实现时钟效果
Jul 20 #Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 #Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 #Javascript
webpack+vue-cil中proxyTable处理跨域的方法
Jul 20 #Javascript
详解vue-cli官方脚手架配置
Jul 20 #Javascript
You might like
PHP4(windows版本)中的COM函数
2006/10/09 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
php错误级别的设置方法
2013/06/17 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
如何测量vue应用运行时的性能
2019/06/21 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
详解Python中的日志模块logging
2015/06/19 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Python正则表达式学习小例子
2020/03/03 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书