现在的位置: 首页 > web前端 > 正文

javascript 制作下拉框缓存

2019年11月15日 web前端 ⁄ 共 1534字 ⁄ 字号 评论关闭

在开发一个项目中,我们会发现,有的时候在重复无意义的访问数据库。

最长见的就是数据库的数据字典访问,甚至同一个类型,也会随着页面打开的个数,而对数据库重复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;
}
/*-------------- 结束 --------------*/

抱歉!评论已关闭.