`

说明: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 ,欢迎讨论!

分享到:
评论

相关推荐

    ajaxProxy:ajaxProxy 是一个ajax请求发送代理,支持链序请求和阻塞请求

    ajaxProxy是一个异步请求的代码发送器,提供一种可读性更好的接口来实现异步请求的流程控制,并且提供了阻塞式请求,在执行这类请求前会将页面上其他并发请求中止掉。 阻塞式请求 ajaxProxy提供了blockReq函数实现对...

    ProxyCache socket buffer 代理缓存服务器TCP/IP,实现本地服务器网页的代理缓存

    实现一个基本的webProxy Cache,java代码,默认字符集请改为utf-8,目前只能缓存本地web服务器上的网页,图片。

    Nginx启用proxy_cache缓存的方法

    Nginx提供的proxy_cache功能是针对反向代理场景下的缓存机制,可以有效减少后端服务器的压力并提高响应速度。proxy_cache机制允许Nginx将从后端服务器获得的静态内容缓存到磁盘上,当相同请求再次发生时,可以直接从...

    PandaJS 使用说明(1.6):日志与 proxy 对象

    通过创建 Proxy 实例,你可以对属性的读取、设置、删除等操作进行拦截,实现数据的动态代理。 2. 数据验证:在访问对象属性时,可以通过Proxy来添加数据验证规则,防止非法数据的写入。这对于确保数据的完整性和...

    nginx缓存清除插件ngx_cache_purge.zip

    ngx_cache_purge 是 nginx 模块,此模块可以清理 nginx 的 FastCGI、proxy、 SCGI 和 uWSGI 的缓存。配置指令(相同位置语法)fastcgi_cache_purgesyntax: fastcgi_cache_purge on|off|&lt;method&gt; [from all|&lt;ip&gt; [.....

    http-proxy-cache:缓存 HTTP 转发代理

    如果存在X-Cache-Preferred标头,则X-Cache-Preferred缓存中的内容(此标头永远不会发送到目标) 如果设置了环境变量PROXY_AUTH ,代理将拒绝所有没有具有相同值的标头X-Proxy-Auth传入请求 先决条件 MongoDB - ...

    composer-proxy:Composer 代理缓存外部包源

    作曲家代理 Composer Proxy是一种轻量级服务,它使用为您提供缓存远程包的方法。 Composer Proxy预计将与一起使用,这是一个小的插件,它将通知代理要缓存的包。要求您将需要一个服务器,您希望在其上使用Composer ...

    避免跨域问题 ajax proxy

    在Web开发中,跨域(Cross-Origin)是一个常见的问题,特别是在使用Ajax进行异步数据请求时。跨域是指浏览器的安全策略限制了JavaScript从一个源(Origin)向另一个源发送请求的能力,以防止恶意脚本窃取或篡改数据...

    解决代理转发post请求失败

    解决代理转发post请求失败

    ajaxproxy:一个简单的ajax代理,用于从前端取出api密钥

    Ajax代理 代理服务器,用于使用后端存储的凭据从客户端代码重定向HTTP请求。 基于和 。 配置说明包括部署到Heroku的步骤,但是代理可以部署到任何Node环境。 配置 将此仓库克隆到本地计算机。 。 使用config var...

    ajax 异步流代理类

    代理类(Proxy Class)是一种设计模式,它充当原始对象和客户端之间的中介,可以提供额外的功能,如日志、缓存、权限控制等。在Ajax上下文中,一个代理类可能负责发起HTTP请求,处理响应,以及在客户端和服务器之间...

    ajax-proxy:拦截es6代理重构XMLHTTPRequest的Ajax代理

    ajax-proxy是一个用ES6中代理特性实现的用于代理原生对象XMLHttpRequest的库,它可以使您从对XMLHttpRequest进行操作。 使用 安装 CDN约会 &lt; script &gt; https: //unpkg....

    npm-proxy-cache, http/https缓存代理使用npm实用程序.zip

    npm-proxy-cache, http/https缓存代理使用npm实用程序 npm-proxy-cache 使用 npm 实用工具的http/https缓存代理。 这是收费而不是反向代理。如果你遇到巨大的网络延迟/延迟问题,你可能会发现这个工具很有用。 其他...

    Ajax-proxy-ajax.zip

    Ajax-proxy-ajax.zip,proxy ajax可以按照项目中的配置规则代理axaj请求,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...

    Github Python ProxyPool(代理池)

    简易高效的代理池,提供如下功能: 1. 定时抓取免费代理网站,简易可扩展 2. 使用 Redis 对代理进行存储并对代理可用性进行排序 3. 定时测试和筛选,剔除不可用代理,留下可用代理 4. 提供代理 API,随机取用测试...

    nginx cache 学习总结 1

    默认键包括协议($scheme)、代理主机($proxy_host)和请求URI($request_uri)。自定义键可以帮助更精确地控制缓存策略,例如添加 `$cookie_user` 来基于用户Cookie进行缓存。 4. **proxy_cache_lock**: - `...

    http-stale-cache-proxy:一种不兼容的HTTP缓存代理,擅长提供过时的缓存内容,同时保持其缓存的异步更新

    http-stale-cache-proxy 一种不兼容的HTTP缓存代理,擅长提供过时的缓存内容,同时保持其缓存的异步更新。 该代理的基本行为是: 未缓存的内容被透明地代理(使用 )。 成功的GET或HEAD请求将被缓存以备后用。 缓存...

    goproxy-android snail007/goproxy全能代理服务器安卓版

    1. Go语言与GoProxy:GoProxy基于Go语言构建,Go语言以其高效的性能和强大的网络处理能力,使得GoProxy能胜任高并发的代理服务需求。GoProxy提供了丰富的API和配置选项,以满足各种复杂的代理场景。 2. 代理服务器...

    Ext.ux.proxy.ProxyCache:Sencha Touch 2双存储代理

    包括带有缓存功能的默认Sencha Touch 2服务器代理(Ajax,JsonP和REST)的扩展版本。 安装 克隆存储库或使用上面的“ Zip”按钮下载它。 将ux文件夹放在应用程序的根目录中(与index.html和app.js放在同一文件夹中...

Global site tag (gtag.js) - Google Analytics