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. Linux下安装jdk&Jmeter

    一.在Linux上部署一个jdk以及Jmeter   tips1:Linux安装tar.gz文件到路径 tar -zxvf 软件包名.tar.gz -C 路径 比如我的jdk-8u131-linux- ...

  2. MySQL管理实务处理

    事物处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么全不执行. 事务:指一组sql语句 回退:指撤销指定的sql语句过程 提交:将未存储的sql语句结果写入数据库表 保留点 ...

  3. JAVA中通过Hibernate-Validation进行参数验证

    在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而hibernate-validator提供了一些常用的参数校验注解,我们可以拿来使用.1.maven中引入hibernate- ...

  4. naturalWidth与naturalHeight

    naturalWidth与naturalHeight是HTML5的新属性, 可与通过这两个属性来直接获取图片的原始宽度和高度, 现在在火狐, 谷歌, IE11均已经实现 可以看看naturalWidt ...

  5. Redis支持的数据类型及相应操作命令:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sorted set:有序集合)

    help 命令,3种形式: help 命令 形式 help @<group> 比如:help @generic.help @string.help @hash.help @list.hel ...

  6. centos7 关闭防护墙

    centos6 里面的默认防火墙 是  iptables, 所有 使用 service iptables  stop  就可以停止防火墙了. 但是 centos7 里面的 防火墙 叫做 firewal ...

  7. django ajax报错解决:You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set.

    Django版本号:1.11.15 django中ajax请求报错:You called this URL via POST, but the URL doesn't end in a slash a ...

  8. windbg条件断点总结

    1 . 条件断点是断点命令 ( bp 或者 bu ) 与j命令或者.if命令一起使用的,后面跟着一个gc命令   0:000> bp Address "j (Condition) 'O ...

  9. nusaop 关于webService

    用PHP和NuSoap来建立SOAP服务器非常容易.基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了.OK,另外还需要两步才能完成PHP SOAP ...

  10. Delphi 与 C/C++ 数据类型对照表

    Delphi 数据类型 C/C++ ShorInt 8位有符号整数 char Byte 8位无符号整数 BYTE,unsigned short SmallInt 16位有符号整数 short Word ...