pear-admin 下拉选项初始化优化

文章描述了一个在pear-admin框架中,为解决下拉选项初始化和表格展示时的重复请求问题,进行了代码优化。通过在dictionary.js中修改函数,使用layui.data存储和检查缓存,在两秒内对相同请求直接返回数据,从而减少了不必要的AJAX调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景:pear-admin下拉选项初始化和table展示时会有重复请求的情况,导致重复请求。

优化:dictionary.js 修改使用layui.data缓存,两秒内重复请求直接返回数据。

优化代码如下:

 const bufEfficientTime=2000;



/**
 * 根据 Code 加载后台字典数据
 *
 * @param dictCode 标识
 */
this.dictListByCode = function (dictCode) {
	if (layui.data('dictListByCode')[dictCode]){
		let dicBuf=layui.data('dictListByCode')[dictCode];
		if (new Date()-new Date(dicBuf.time)<bufEfficientTime){
			return dicBuf.data;
		}
	}
	let dictData = null;
	$.ajax({
		url: '/system/dictData/selectByCode',
		data: {'typeCode': dictCode},
		type: 'get',
		async: false,
		success: function (result) {
			if (result.success === true) {
				dictData = result.data;
				layui.data('dictListByCode',{key:dictCode,value:{time:new Date(),data:dictData}})
			}
		}
	})
	return dictData;
}



/**
 * 根据 Code 加载后台字典数据
 *
 * @param dictCode 标识
 */
this.dictListByUrl = function (url) {
	if (layui.data('dictListByUrl')[url]){
		let dicBuf=layui.data('dictListByUrl')[url];
		if (new Date()-new Date(dicBuf.time)<bufEfficientTime){
			return dicBuf.data;
		}
	}
	let dictData = null;
	$.ajax({
		url: url,
		type: 'get',
		async: false,
		success: function (result) {
			if (result.code === 0) {
				dictData = result.data;
				layui.data('dictListByUrl',{key:url,value:{time:new Date(),data:dictData}})
			}
		}
	})
	return dictData;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发者长银

有用的话给作者打赏个棒棒糖吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值