在开发一个项目中,我们会发现,有的时候在重复无意义的访问数据库。
最长见的就是数据库的数据字典访问,甚至同一个类型,也会随着页面打开的个数,而对数据库重复N次同样的访问操作
这样大大的增加了我们的服务器压力。
我们会发现,数据字典这种东西,在正式运行的时候,是不会经常变动的,甚至是不变动。
这时候我们应该把它缓存到客户端,来避免服务器的无意义操作,带来的无意义压力。
基于easyui的combobox,我给大家提供如下写法:
3个关键地方。
1:缓存数据 $.cache.sys_data_dictionary_code;
2:加载缓存方法 $.cache.sys_data_dictionary_code_load();
3:刷新缓存 $.cache.sys_data_dictionary_code_reload();
一般调用$.cache.sys_data_dictionary_code_load();
该方法会进行缓存监测,如果没有该缓存,就执行$.cache.sys_data_dictionary_code_reload();方法进行缓存刷新
如果有的话,将缓存数据$.cache.sys_data_dictionary_code;返回
代码如下,分享给大家:
/*------------ 数据字典(用于combobox) ------------*/
/* 缓存数据 */
$.cache.sys_data_dictionary_code;
/*
加载缓存数据内容
*/
$.cache.sys_data_dictionary_code_load = function () {
if ($.cache.sys_data_dictionary_code == undefined) {
return $.cache.sys_data_dictionary_code_reload(all);
}
return $.cache.sys_data_dictionary_code;
}
/*
刷新缓存数据
*/
$.cache.sys_data_dictionary_code_reload = function () {
$.cache.sys_data_dictionary_code = new Array();
var _json = $.ajax({
url: "/Account/SysDataDictionaryItem/GetAllListDit/",
async: false
}).responseText;
var _data = $.parseJSON(_json);
var _options = _data.Data;
if (_data.IsSuccess == false) {
$.messager.show({
title: "系统提示",
msg: "数据源sys_data_dictionary加载失败!",
iconCls: "error",
width: 350,
heigth: 200,
style: {
top: document.body.scrollTop + document.documentElement.scrollTop,
}
})
return;
}
for (var item in _options) {
$.cache.sys_data_dictionary_code[item] = _options[item];
}
return $.cache.sys_data_dictionary_code;
}
/*-------------- 结束 --------------*/