上篇分享讲了,书写缓存能很大程度上提高应用的性能。缓存的应用除了写在js代码里还需要相应的服务器做配置
比如nginx配置http://linux008.blog.51cto.com/2837805/547236
这里说明的比较详细,当然有些时候我们不希望自己的服务器被代理缓存,那么我们可以设置缓存报头在一个小时后过期,可以写为
location / {
expires 1h;
}
这样配置后我们服务器返回给浏览器的报头中包含的Cash-Control:max-age=3600,那么当网站在1小时内被经常访问会有较大性能提高,同时因为1小时不算长,也能保证内容较新。
下面说明下网络存储,web storage 这个是为了弥补不理想的移动刘拉起缓存环境,网络存储提供除了cookie之外的另一种持久性数据的存储方式。网络存储为每个域提供了5MB的键值形式的存储空间。
网络存储的api包括 localStorage sessionStorage,比如可以这样写:
var a=localStroage[‘b’];
localStorage['b']=c;移除的话是localStorage.removeItem('key'),不过它跟cookie一样不够安全,也就是说用户可以对其进行更改。
这个缓存的用法是搭配内存,也就是说假如我们获得数据后存储到网络存储和内存中,(内存存储为你自己定义的某个对象比如var a={}),获取数据的时候先从内容中得到,如果没有再去网络存储中拿,或许你的疑问是为什么已经放在内存还要再用这样一个网络存储,这是因为我们的数据是有过期性质的,放置数据和取数据的时候会产生时间差,这样内存的数据过期后去网络存储中取,网络存储中的数据过期就把它移除。