layui框架中的page困扰我很久,一个页面初始化后并且分页,导致初始化渲染请求一次,分页再请求了一次,一个接口就重复请求了2次,通过不停的分析和测试,最终解决了这个问题。

基于JQ的ajax二次封装的baseJqAjax:

 //基于JQuery的baseJqAjax
function baseJqAjax ( options , error , success ) { options = options === undefined ? {} : options; var type = options.type === undefined ? 'post' : options.type; var async =options.async === undefined ? true : options.async; var url = options.url === undefined ? '' : options.url; var data = options.data === undefined ? {} : options.data; var dataType =options.dataType === undefined ? 'json' : options.dataType; $.ajax({ type: type, async: async, url: url, data: data, dataType: dataType, error: function(err) { error&&error(err); }, success: function(result) { success&&success(result); } }); }
/*使用方法有两种*/ //第一种逻辑较多的选择 其他参数不设置使用默认参数 baseJqAjax({url:url,data:data},error,success); function error(err){ //请求失败执行的代码
} function success(result){ //请求成功后执行的代码
} //第二种适合业务逻辑较少 其他参数不设置使用默认参数
//
baseJqAjax({url:url,data:data},function error(err){ //请求失败执行的代码 },function success(result){ //请求成功后执行的代码 });

项目中某个页面的初始化分页并且可以搜索功能:

 //init和page 里的接口都是同一个
function init(){ baseJqAjax({url:url,data:data},function error(err){ //请求失败执行的代码 },function success(result){ //请求成功后执行的代码
//成功请求到数据result
var data=result.data;
var page=result.count;
page(data,page);
});
} function page(data,page){ layui.use('laypage', function(){ var laypage = layui.laypage; laypage.render({ elem: 'free',//注意,这里的 test1 是 ID,不用加 # 号 count: page, groups:2, //数据总数,从服务端得到 limit:2, //每页的条数在这里设置 jump: function(data, first){ //page if(!first){ baseJqAjax({url:url,data:data},error,success); function error(err){
//分页请求失败执行的代码
} function success(result){
//分页请求成功后执行的代码
}
} else { //init var html=''; for(var i=0;i<data.length;i++){ html += '<li>'+ data[i].parkingLotName + '</li>'; } $('#ul').html(html); }
}
});
});
}

如有疑问,欢迎留言。

layui之初始化加分页重复请求问题解决的更多相关文章

  1. iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)

    一.推荐关注模块(一个控制器控制两个tableView) -- 数据的显示 刚开始加载数据值得注意的有以下几点 导航控制器会自动调整scrollView的contentInset,最好是取消系统的设置 ...

  2. Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数

    背景 笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧! ...

  3. layui 工具条实现分页

    1.页面 <div id="getShowTable" style="width: 100%; height: auto;clear: both;"> ...

  4. EasyUI中那些不容易被发现的坑——EasyUI重复请求2次的问题

    问题控件:datagrid.combobox.所有能设置url属性的控件 问题版本:1.4.4.1.4.5(之前的版本没测) 问题如图: 重复请求2次,错误代码如图: 错误问题分析:html加载的时候 ...

  5. php结合layui实现前台加后台操作

    一:前台加载出前端页面: HTML: lay-data="{width:800,height:400, url:'data.php', page:true, id:'test'} js: l ...

  6. Java后台防止客户端重复请求、提交表单

    前言 在Web / App项目中,有一些请求或操作会对数据产生影响(比如新增.删除.修改),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱. 常见处理方案 1 ...

  7. SpringCloud微服务实战——搭建企业级开发框架(三十九):使用Redis分布式锁(Redisson)+自定义注解+AOP实现微服务重复请求控制

      通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题,如果因网络问题.Nginx重试机制.微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重 ...

  8. Web 组合查询加 分页

    使用ADO.NET 数据访问技术制作web端组合查询加分页的功能关键在于查询SQL语句的拼接 以Car 表为例 每页显示3条数据 数据访问类使用查询方法,tsql 查询的连接字符串,查询的参数放到Ha ...

  9. spring 注解重复(防重复请求)

    1.配置拦截器 spring-mvc.xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/ ...

随机推荐

  1. windows 8,关闭随意窗体都提示“已停止工作”的解决的方法

           电脑用的好好的,突然出现了关闭随意窗体都提示"已停止工作",每次都是这样.想想也就是偶尔优化一下,近期也没有改动过什么系统设置呀,突然想到昨晚JLink_V8固件丢失 ...

  2. Unity Shader 入门精要学习 (冯乐乐 著)

    第1篇 基础篇 第1章 欢迎来到Shader的世界 第2章 渲染流水线 第3章 Unity Shader 基础 第4章 学习Shader所需的数学基础 第2篇 初级篇 第5章 开始Unity Shad ...

  3. 编写一个函数实现n^k,使用递归实现

    思路:例如2的3次方.可以分解为2乘2的2次方,而2的2次方又可以分解为2乘2的以此方法,以此类推. #include<stdio.h> int Find_num(int n,int k) ...

  4. trac

    F:\Python27>python F:\portabletrac\ez_setup.pyDownloading https://pypi.io/packages/source/s/setup ...

  5. scrapy 项目通过scrapyd部署

    年前的时候采用scrapy 爬取了某网站的数据,当时只是通过crawl 来运行了爬虫,现在还想通过持续的爬取数据所以需要把爬虫部署起来,查了下文档可以采用scrapyd来部署scrapy项目,scra ...

  6. Linux 安装MySql启动Can't locate Data/Dumper.pm in @INC

    通过RPM包CentOS7 安装MySQL的时候提示“Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl ...

  7. Jenkins 配置用户权限错误导致无法登录解决方案

    最初配置Jenkins的用户管理权限时,因为不熟悉很容易将用户角色配置错误,导致配置用户后无法登录系统: 登录系统时候提示"Access Denied": 解决办法: 进入Jenk ...

  8. Linux VMware安装VMTools工具

    安装VMTools工具 2)先启动CentOS并成功登录如下图,发现底部提示且窗口中等大小,准备安装 3)选择虚拟机菜单栏--安装VMware tools 4)光驱自动挂载VMTools 5)右键解压 ...

  9. java集合与包装类

    一.集合概述 1 为什么需要使用集合? 引入案例:存储每天产生的新闻. 是要解决数组的局限性(定长),由于数组定长,可能会导致内存浪费或者内存不够. 需要一种技术:能够根据数据量而动态伸缩内存空间一种 ...

  10. hanlp和jieba等六大中文分工具的测试对比

    本篇文章测试的哈工大LTP.中科院计算所NLPIR.清华大学THULAC和jieba.FoolNLTK.HanLP这六大中文分词工具是由  水...琥珀 完成的.相关测试的文章之前也看到过一些,但本篇 ...