`

说明:APC (Ajax Proxy Cache) 异步代理缓存

阅读更多

APC-JS异步代理缓存解决方案

浏览:1357 评论:0 时间:2012年02月22日 15:56:46

以前和飞舟一般做一个项目,为了减轻服务器的压力,我们一起研究了一下有关异步本地缓存的解决方案,

后来终于研究出来了,并且在实现项目中也效果非常好。

最近不太忙,我将这套方案整理出来,并且加以改进了一下,使其更加的OOP,更加的方便使用!

/****************************************************

说明:APC (Ajax Proxy Cache) 异步代理缓存

原理:利用 userdata/localStorage 进行数据保存,同时保存特定的时间记录来实现缓存功能

缓存大小:浏览器各有区别 <IE8:5M  IE8:10M Firefox:5M Chrome:没有强制约定

注意:1:本库必需要引入 jQuery 2:本地保存的数据不会加密,建议不要保存敏感重要信息.

作者:V哥

API介绍:

[config单元](该单元必需和iface单元结合使用)
APC.config.global :该对象下的所有属性可以自定义
APC.config.add :添加配置项,必需与 APC.iface 单元结合使用,配置项格式如下:
----------------------------------------------------------------------
{
    key:'userlist', // 唯一标识,用于区别这个配置
    url:'/get.php?opt=json', // 异步请求地址
    time:15 // 缓存时间,单位:秒;如果没有定义这个选项则使用 APC.config.global.time 值
}
---------------------------------------------------------------------
[iface单元] (该单元必需和config单元结合使用)
APC.iface.call :ajax异步请求操作,所有参数兼容 jQuery.get() 操作
APC.iface.remove :删除指定的请求缓存
APC.iface.clear :清空本地所有缓存

[cache单元] (该单元可以单独使用)
APC.cache.get 得到缓存值
APC.cache.set 设置缓存值
APC.cache.remove 删除指定的缓存

[json单元] (该单元可以单独使用)
APC.json.stringify 将对象编码成字符串
APC.json.parse 将字符串解析成对象


DEMO 示例:

<script src="jquery.js"></script>
<script src="APC.js"></script>
<script>
$(function(){
    // 开启缓存(默认打开)
    APC.config.global.enable = true;
    // 默认缓存60秒
    APC.config.global.time = 60;
    // 以下根据需要决定是否设置的
    APC.config.global.onStart = function(){ alert('请求开始');}
    APC.config.global.onComplete = function(){ alert('请求完成');}
    // 添加配置项
    APC.config.add({
        key:'userlist', // 唯一标识,用于区别这个配置
        url:'/get.php?opt=json', // 异步请求地址
        time:15 // 缓存时间,单位:秒;如果没有定义这个选项则使用默认缓存值
    });
    // 异味步请求,像 jQuery.get() 一样用,这个请求在 15秒内只会发送1次服务器请求
    APC.iface.call('/get.php?opt=json',function(ret){ alert('用户回调:'+ret.name); },'json');

    // 删除这个测试的本地缓存
    //APC.iface.remove('userlist');
    // 清空本地所有缓存
    //APC.iface.clear();

    // 设置本地缓存10秒
    //APC.cache.set('key1','abcde',10);
    // 取缓存
    //APC.cache.get('key1');
    // 删除缓存
    //APC.cache.remove('key1');

    // 对象进行编码
    //APC.json.stringify({id:1,name:'yuan'});
    // 解析成对象
    //APC.json.parse('{"id":1,"name":"yuan"}');
});
</script>
/****************************************************/

详细代码请下载 APC.js ,欢迎讨论!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics