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

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

  1. //基于JQuery的baseJqAjax
  2. function baseJqAjax ( options , error , success ) {
  3.  
  4. options = options === undefined ? {} : options;
  5.  
  6. var type = options.type === undefined ? 'post' : options.type;
  7.  
  8. var async =options.async === undefined ? true : options.async;
  9.  
  10. var url = options.url === undefined ? '' : options.url;
  11.  
  12. var data = options.data === undefined ? {} : options.data;
  13.  
  14. var dataType =options.dataType === undefined ? 'json' : options.dataType;
  15.  
  16. $.ajax({
  17.  
  18. type: type,
  19.  
  20. async: async,
  21.  
  22. url: url,
  23.  
  24. data: data,
  25.  
  26. dataType: dataType,
  27.  
  28. error: function(err) { error&&error(err); },
  29.  
  30. success: function(result) { success&&success(result); }
  31.  
  32. });
  33.  
  34. }
  35. /*使用方法有两种*/
  36.  
  37. //第一种逻辑较多的选择 其他参数不设置使用默认参数
  38.  
  39. baseJqAjax({url:url,data:data},error,success);
  40.  
  41. function error(err){
  42.  
  43. //请求失败执行的代码
  44. }
  45.  
  46. function success(result){
  47.  
  48. //请求成功后执行的代码
  49. }
  50.  
  51. //第二种适合业务逻辑较少 其他参数不设置使用默认参数
  52. //
  53. baseJqAjax({url:url,data:data},function error(err){
  54.  
  55. //请求失败执行的代码
  56.  
  57. },function success(result){
  58.  
  59. //请求成功后执行的代码
  60.  
  61. });

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

  1. //init和page 里的接口都是同一个
  2. function init(){
  3.  
  4. baseJqAjax({url:url,data:data},function error(err){
  5.  
  6. //请求失败执行的代码
  7.  
  8. },function success(result){
  9.  
  10. //请求成功后执行的代码
  11. //成功请求到数据result
  12. var data=result.data;
  13. var page=result.count;
  14. page(data,page);
  15. });
  16. }
  17.  
  18. function page(data,page){
  19.  
  20. layui.use('laypage', function(){
  21.  
  22. var laypage = layui.laypage;
  23.  
  24. laypage.render({
  25.  
  26. elem: 'free',//注意,这里的 test1 是 ID,不用加 # 号
  27.  
  28. count: page,
  29.  
  30. groups:2, //数据总数,从服务端得到
  31.  
  32. limit:2, //每页的条数在这里设置
  33.  
  34. jump: function(data, first){
  35.  
  36. //page
  37.  
  38. if(!first){
  39.  
  40. baseJqAjax({url:url,data:data},error,success);
  41.  
  42. function error(err){
  43. //分页请求失败执行的代码
  44. }
  45.  
  46. function success(result){
  47. //分页请求成功后执行的代码
  48. }
  49. } else {
  50.  
  51. //init
  52.  
  53. var html='';
  54.  
  55. for(var i=0;i<data.length;i++){
  56.  
  57. html += '<li>'+ data[i].parkingLotName + '</li>';
  58.  
  59. }
  60.  
  61. $('#ul').html(html);
  62.  
  63. }
  64. }
  65. });
  66. });
  67. }

如有疑问,欢迎留言。

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. 利用js获取客户端ip的方法

    1. 通过script标签引入url 比如如下代码: <script type="text/javascript" src="http://pv.sohu.com/ ...

  2. xml.sax 笔记

    from xml.sax import saxutils html_str = """<!DOCTYPE html> <html> <hea ...

  3. [转]跳板机Jumpserve的生产环境配置

    6.跳板机Jumpserver]   Jumpserver是国内一款开源的轻便的跳板机系统,他们的官网:http://www.jumpserver.org/ 使用这款软件意在提高公司内部登录生产环境服 ...

  4. 了解ARM+Android

    第一部分 认识ARM,方案商,GPU , 芯片 1.1 ARM ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能.廉价.耗能低的RISC处理器.相关 ...

  5. 移动互联网终端的touch事件,touchstart, touchend, touchmove 很棒的文章

    转载请注明: 转载自WEB前端开发(www.css119.com)-关注常见的WEB前端开发问题.最新的WEB前端开发技术(webApp开发.移动网站开发).最好的WEB前端开发工具和最全的WEB前端 ...

  6. Temporary ASP.NET Files\root 空间增长太快

    估计是虚拟目录有新的文件,造成项目重新被编译要么把新文件放到另一个目录,要么使用web application而不是web project

  7. ALGO-11_蓝桥杯_算法训练_瓷砖铺放(递归)

    问题描述 有一长度为N(<=N<=)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限.要将这个长度为N的地板铺满,一共有多少种不同的铺法? 例如,长度为4的地面一共有如下5 ...

  8. STL基础--算法(排序)

    STL排序算法 排序算法要求随机访问迭代器 vector, deque, container array, native array 例子 vector<int> vec = {9,1,1 ...

  9. P2837晚餐队列安排

    传送 特写此篇,纪念不用dp做dp题 洛谷说这是个dp,但我不信(其实就是不会dp),因此我们考虑用另一种思路.修改后的队列每一个 数a[i]一定满足a[i]<=a[i+1],那修改后的顺序就是 ...

  10. PAT 乙级 1051 复数乘法 (15) C++版

    1051. 复数乘法 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 复数可以写成(A + Bi)的常规 ...