详解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 常用方法总结
Jun 03 Javascript
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
Aug 25 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
Mar 02 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
Javascript 实现匿名递归的实例代码
May 25 Javascript
angular学习之从零搭建一个angular4.0项目
Jul 10 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 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
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
javascript实现评分功能
2020/06/24 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
广州地球村科技数据库题目
2016/04/25 面试题
勤俭节约演讲稿
2014/05/08 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
HTML+JS实现在线朗读器
2022/02/15 Javascript
源码安装apache脚本部署过程详解
2022/09/23 Servers