Smartjax是一款可以将ajax请求的内容进行智能缓存的jQuery插件。作为原生jQuery的$.ajax()
方法的替代,Smartjax.ajax()
可以将ajax的回调内容缓存在浏览器中,再次进行相同url的ajax调用时,不会在向服务器发送请求,而是读取本地的缓存。你还可以强制发送ajax请求,或清除指定或所有的ajax缓存内容。
Smartjax的特点有:
- Smartjax.js是一个轻量级的插件。
- Smartjax的语法和原生jQuery
$.ajax()
的语法十分相似,你只需要注意一些额外的参数即可。 - 减少服务器端的http请求可以大大提升你的网站性能。
如上面所述,Smartjax会缓存ajax响应信息,并且不会对同一个url发生两次ajax请求。举个例子来说明:例如你要在你的网站的右上方显示用户登录状态和用户信息,如果你每一个页面都要显示这个信息,那么每一个页面都会向服务器发送相同的ajax请求来获取该用户的信息,或者是通过服务器端程序来完成这个功能。如果使用smartjax,那么它会在第一次获取用户信息后,将信息缓存在浏览器中,以后每个页面的用户信息都会从浏览器缓存中提取。
使用方法
smartjax的使用方法非常简单,下面是它和原生jQuery ajax的比较:
原生jQuery Ajax
$.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 } });
Smartjax
Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 } });
如果控制ajax数据
通过Smartjax.ajax()的一些参数和方法,你可以控制ajax响应数据的缓存方式,以及清除缓存和保存数据的方式。
- Smartjax:在你引入smartjax.js文件之后,会创建一个全局的变量
Smartjax
,该变量包含一个方法,ajax()
。 - force:如果在某个ajax调用中设置
force
属性为true
,smartjax会强制执行ajax调用并更新缓存的内容。Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 }, force:true });
该参数默认值为
false
。 - store:如果在某个ajax调用中设置
store
属性为false
,那么响应的信息不回被缓存。Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 }, store:false });
- group:你可以使用
group
参数来对ajax调用进行分组。在清除响应缓存的时候,组是非常有用的。Smartjax.ajax({ url:'http://httpbin.org/post', type: 'POST', data:{ a:1,b:2 }, group:"group1" });
- cleanStore(param):该方法用于清除ajax的缓存数据。可以使用组参数来清除某一个组的缓存数据。
Smartjax.cleanStore({groups:["g1"]});
- cleanAll():该方法没有参数,作用是清除所有的ajax缓存数据。
Smartjax.cleanAll();
- setDefaults(param):该方法接收一个对象作为参数。默认的调用方式是
get
方式,你可以进行修改,其它两个参数和force
和store
相同。Smartjax.setDefaults({ defaultMethod: 'get', alwaysForce: false, alwaysStore: true });
Pipelined features
- support of ID. It will make saving data and retrieving faster.
- Record and Mock services, which will help you to develop UI even if your api is not ready.