layui之初始化加分页重复请求问题解决
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之初始化加分页重复请求问题解决的更多相关文章
- iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)
一.推荐关注模块(一个控制器控制两个tableView) -- 数据的显示 刚开始加载数据值得注意的有以下几点 导航控制器会自动调整scrollView的contentInset,最好是取消系统的设置 ...
- Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数
背景 笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧! ...
- layui 工具条实现分页
1.页面 <div id="getShowTable" style="width: 100%; height: auto;clear: both;"> ...
- EasyUI中那些不容易被发现的坑——EasyUI重复请求2次的问题
问题控件:datagrid.combobox.所有能设置url属性的控件 问题版本:1.4.4.1.4.5(之前的版本没测) 问题如图: 重复请求2次,错误代码如图: 错误问题分析:html加载的时候 ...
- php结合layui实现前台加后台操作
一:前台加载出前端页面: HTML: lay-data="{width:800,height:400, url:'data.php', page:true, id:'test'} js: l ...
- Java后台防止客户端重复请求、提交表单
前言 在Web / App项目中,有一些请求或操作会对数据产生影响(比如新增.删除.修改),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱. 常见处理方案 1 ...
- SpringCloud微服务实战——搭建企业级开发框架(三十九):使用Redis分布式锁(Redisson)+自定义注解+AOP实现微服务重复请求控制
通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题,如果因网络问题.Nginx重试机制.微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重 ...
- Web 组合查询加 分页
使用ADO.NET 数据访问技术制作web端组合查询加分页的功能关键在于查询SQL语句的拼接 以Car 表为例 每页显示3条数据 数据访问类使用查询方法,tsql 查询的连接字符串,查询的参数放到Ha ...
- spring 注解重复(防重复请求)
1.配置拦截器 spring-mvc.xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/ ...
随机推荐
- Exclude the folders/files for indexing
如果你的项目有非常多的文件,目录,Eclipse 有一个很好的Resource Filter 可以把有某些特征的文件,目录不再进行索引.
- sublime 安装插件出现问题
一. 解决package Install不能安装 If for some reason the console installation instructions do not work for ...
- 嵌入式LINUX设置时间
date -s "2018-12-15 08:55:00" 安装NTP从网络获取时间 基于Linux的嵌入式开发,需要用到本地的时间,但是网上找了很多修改时间的命令,但大多是Lin ...
- GUI相关学习资料
分类 1,基于OS,包括windows,linux,android,ios 2,基于语言,包括c++,java,c#,javacript 3,按照技术分类,这个其实和os,编程语言分不开,大概可以分为 ...
- linux之 awk
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进 ...
- dva 知识点
dva中,路由模式从hashHistory换成 browserHistory: dva-cli创建的项目中,src/index.js相应部分修改如下: import browserHistory fr ...
- 备忘录模式-Memento Pattern
1.主要优点 备忘录模式的主要优点如下: (1)它提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原. (2) ...
- 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 ...
- jsp中如何清除缓存(转)
<% response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHea ...
- 运行Spark提供的计算圆周率的示例程序
1.启动Spark服务 因为spark是依赖于hadoop提供的分布式文件系统的,所以在启动spark之前,先确保hadoop在正常运行. 在hadoop正常运行的情况下,在master(也就是had ...