【案例讨论】从案例引发的对缓存设计的思考,干货讨论,绝对不玩虚的
这样吧,我先开个头,大家可以一起参与!
我首先说说在项目中可以使用缓存的地方。
我这里用一个图可能表述的更加清楚!
如图:
既然我们谈缓存这个话题,那么我们就把这个话题谈细致一点,因为很多时候:谈大帽子的话很多人都会滔滔不绝,但是一到真实的细节与落实的地方,很多人就偃旗息鼓了,呵呵 有点”吹起来,天下无敌;做起来,一无是处“的感觉。
我们首先就来看看浏览器的缓存。
这个好搞啊,做过网站的朋友都知道,这个设置主要就是通过设置:Cache-Control 这个响应头来实现的,如下:
不同的技术平台,实现的方式不一样,大家也不要纠结这些平台的差异,只要最后结果是一样的就OK了,要怀着包容心去看每一种技术,如果连技术的差异性都无法容忍,未必也太小家子气了,呵呵呵。
例如,在微软技术的ASP.NET中,可以通过几种方式来实现:
1.页面中设置,如下:
2.代码中设置,如下:
3.IIS中设置,如下:
浏览器缓存可以缓存图片,js,css,当然,还可以把一些数据,通过js对象的形式保存在浏览器中。
浏览器缓存的问题主要在于图片,js,css的更新上面。
例如如果我们设置了缓存的时间为1一个月,那么这些资源很有可能就在一个月还没有到就因为我们发布新的版本而更新了。这个时候,浏览器不会知道的,还是会使用老的版本。
这不是我们希望看到的,解决的办法也是很简单,如果大家留心点,就会发现很多的站点的js,css是这样命名的:XXX-1.2.js
这就是通过版本控制来来使得浏览器重新下载新的资源。
内容太多,更多请参看:http://www.agilesharp.com/Forum.aspx/t-17
http://bbs.chinaunix.net/thread-3744450-1-1.html
小洋,燕洋天