Smartjax是一款可以将ajax请求的内容进行智能缓存的jQuery插件。作为原生jQuery的$.ajax()
方法的替代,Smartjax.ajax()
可以将ajax的回调内容缓存在浏览器中,再次进行相同url的ajax调用时,不会在向服务器发送请求,而是读取本地的缓存。你还可以强制发送ajax请求,或清除指定或所有的ajax缓存内容。
Smartjax的特点有:
$.ajax()
的语法十分相似,你只需要注意一些额外的参数即可。如上面所述,Smartjax会缓存ajax响应信息,并且不会对同一个url发生两次ajax请求。举个例子来说明:例如你要在你的网站的右上方显示用户登录状态和用户信息,如果你每一个页面都要显示这个信息,那么每一个页面都会向服务器发送相同的ajax请求来获取该用户的信息,或者是通过服务器端程序来完成这个功能。如果使用smartjax,那么它会在第一次获取用户信息后,将信息缓存在浏览器中,以后每个页面的用户信息都会从浏览器缓存中提取。
smartjax的使用方法非常简单,下面是它和原生jQuery ajax的比较:
$.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 } });
Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 } });
通过Smartjax.ajax()的一些参数和方法,你可以控制ajax响应数据的缓存方式,以及清除缓存和保存数据的方式。
Smartjax
,该变量包含一个方法,ajax()
。force
属性为true
,smartjax会强制执行ajax调用并更新缓存的内容。
Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 }, force:true });
该参数默认值为false
。
store
属性为false
,那么响应的信息不回被缓存。
Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 }, store:false });
group
参数来对ajax调用进行分组。在清除响应缓存的时候,组是非常有用的。
Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 }, group:"group1" });
Smartjax.cleanStore({groups:["g1"]});
Smartjax.cleanAll();
get
方式,你可以进行修改,其它两个参数和force
和store
相同。
Smartjax.setDefaults({ defaultMethod: 'get', alwaysForce: false, alwaysStore: true });