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提供了blockReq函数实现对...
实现一个基本的webProxy Cache,java代码,默认字符集请改为utf-8,目前只能缓存本地web服务器上的网页,图片。
Nginx提供的proxy_cache功能是针对反向代理场景下的缓存机制,可以有效减少后端服务器的压力并提高响应速度。proxy_cache机制允许Nginx将从后端服务器获得的静态内容缓存到磁盘上,当相同请求再次发生时,可以直接从...
通过创建 Proxy 实例,你可以对属性的读取、设置、删除等操作进行拦截,实现数据的动态代理。 2. 数据验证:在访问对象属性时,可以通过Proxy来添加数据验证规则,防止非法数据的写入。这对于确保数据的完整性和...
ngx_cache_purge 是 nginx 模块,此模块可以清理 nginx 的 FastCGI、proxy、 SCGI 和 uWSGI 的缓存。配置指令(相同位置语法)fastcgi_cache_purgesyntax: fastcgi_cache_purge on|off|<method> [from all|<ip> [.....
如果存在X-Cache-Preferred标头,则X-Cache-Preferred缓存中的内容(此标头永远不会发送到目标) 如果设置了环境变量PROXY_AUTH ,代理将拒绝所有没有具有相同值的标头X-Proxy-Auth传入请求 先决条件 MongoDB - ...
作曲家代理 Composer Proxy是一种轻量级服务,它使用为您提供缓存远程包的方法。 Composer Proxy预计将与一起使用,这是一个小的插件,它将通知代理要缓存的包。要求您将需要一个服务器,您希望在其上使用Composer ...
在Web开发中,跨域(Cross-Origin)是一个常见的问题,特别是在使用Ajax进行异步数据请求时。跨域是指浏览器的安全策略限制了JavaScript从一个源(Origin)向另一个源发送请求的能力,以防止恶意脚本窃取或篡改数据...
解决代理转发post请求失败
Ajax代理 代理服务器,用于使用后端存储的凭据从客户端代码重定向HTTP请求。 基于和 。 配置说明包括部署到Heroku的步骤,但是代理可以部署到任何Node环境。 配置 将此仓库克隆到本地计算机。 。 使用config var...
代理类(Proxy Class)是一种设计模式,它充当原始对象和客户端之间的中介,可以提供额外的功能,如日志、缓存、权限控制等。在Ajax上下文中,一个代理类可能负责发起HTTP请求,处理响应,以及在客户端和服务器之间...
ajax-proxy是一个用ES6中代理特性实现的用于代理原生对象XMLHttpRequest的库,它可以使您从对XMLHttpRequest进行操作。 使用 安装 CDN约会 < script > https: //unpkg....
npm-proxy-cache, http/https缓存代理使用npm实用程序 npm-proxy-cache 使用 npm 实用工具的http/https缓存代理。 这是收费而不是反向代理。如果你遇到巨大的网络延迟/延迟问题,你可能会发现这个工具很有用。 其他...
Ajax-proxy-ajax.zip,proxy ajax可以按照项目中的配置规则代理axaj请求,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...
简易高效的代理池,提供如下功能: 1. 定时抓取免费代理网站,简易可扩展 2. 使用 Redis 对代理进行存储并对代理可用性进行排序 3. 定时测试和筛选,剔除不可用代理,留下可用代理 4. 提供代理 API,随机取用测试...
默认键包括协议($scheme)、代理主机($proxy_host)和请求URI($request_uri)。自定义键可以帮助更精确地控制缓存策略,例如添加 `$cookie_user` 来基于用户Cookie进行缓存。 4. **proxy_cache_lock**: - `...
http-stale-cache-proxy 一种不兼容的HTTP缓存代理,擅长提供过时的缓存内容,同时保持其缓存的异步更新。 该代理的基本行为是: 未缓存的内容被透明地代理(使用 )。 成功的GET或HEAD请求将被缓存以备后用。 缓存...
1. Go语言与GoProxy:GoProxy基于Go语言构建,Go语言以其高效的性能和强大的网络处理能力,使得GoProxy能胜任高并发的代理服务需求。GoProxy提供了丰富的API和配置选项,以满足各种复杂的代理场景。 2. 代理服务器...
包括带有缓存功能的默认Sencha Touch 2服务器代理(Ajax,JsonP和REST)的扩展版本。 安装 克隆存储库或使用上面的“ Zip”按钮下载它。 将ux文件夹放在应用程序的根目录中(与index.html和app.js放在同一文件夹中...