Ari*_*ian 8 asp.net iis iis-7 caching outputcache
有什么区别IIS (Dynamic and Static)缓存,OutPutCache和browser cache?
我想我对他们感到困惑.
浏览器是否缓存所有js或css文件?
如果我使用IIS缓存但不使用会发生OutputCache什么?
如果我同时使用两者会发生什么?
Ari*_*tos 12
这OutPutCache是一个页面/控件缓存,保存在服务器上以从此页面/控件的呈现中获得处理速度.
browser cache您在页面上设置的是标题命令,并向客户端浏览器发出指令,以使页面保留在客户端计算机缓存上一段时间,而不是从服务器读取它.
在static cache当你为内容缓存是所有用户共同的,而且是Dynamic cache当你设置缓存,它在同一页的不同,从用户或其它参数取决于是否.另外你可以说静态是不改变的内容(例如图像,html页面等),而动态是像aspx页面那样改变的内容的缓存.
IIS可以为图像和所有这类内容设置缓存,这些内容不会发生变化,您可以向浏览器说"保持"很长时间.
您需要使用所有缓存的组合来获得最佳结果,而不是使用什么和不使用什么.静态内容的大量缓存不会发生很大变化,动态内容缓存也会减少.
浏览器是否缓存所有js或css文件?
浏览器只做你说他要做的事.因此,您需要将页眉设置为浏览器,以确定浏览器将此文件保留在客户端缓存上的时间长度.如果你没有设置任何东西,那么IIS设置静态内容,如Js和Css和图像,文件创建日期,浏览器可以使用它来询问服务器是否需要再次读取它.
关于静态和动态缓存的另一个信息是,动态缓存上的浏览器询问服务器是否需要更新,如果答案为是,则再次读取页面.这样浏览器总是调用服务器,但并不总是返回内容.
另一种方式是静态,在这个缓存中浏览器缓存内容并且永远不要求服务器重新读取它.例如,对于静态内容的图像,您设置了一个大缓存,浏览器从不再询问服务器,而是使用客户端缓存中的图像.
您可以在web.config上设置此静态内容缓存
<staticContent>
<clientCache cacheControlMaxAge ="8.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
浏览器的动态缓存是您需要以编程方式进行的操作.您在标题上设置了参数,当浏览器询问内容时,您会阅读此参数,并希望重播内容,使用新内容或使用命令从缓存中读取.
http://jagbarcelo.blogspot.com/2009/03/conditional-get-and-etag-implementation.html
if I use both IIS cache and OutputCache?
Run Code Online (Sandbox Code Playgroud)
实际上这是两个不同的想法,他们自己行动.让我们看看发生了什么的一些步骤.
客户端浏览器:请给我页面default.aspx
服务器响应:好的等一下.让我看看我在OutpuCache上有它吗?不,我现在就把它保存到OutPutCache.现在我发给你.(waiting time 600 ms + 70ms Network Lag) + 2000ms to download the mage
客户端B浏览器:请给我页面default.aspx
服务器响应:好的等一下.让我看看我在OutpuCache上有它吗?是的,我从缓存中读取它并发送它.`(等待时间100毫秒+ 70毫秒网络延迟)+ 2000毫秒下载法师
客户端A浏览器:请给我页面default.aspx,我的上一个缓存说该文件有日期:12/Mar/2012.
服务器响应:嗯您不需要重新读取它,因为未修改,请使用本地缓存.(waiting time 80 ms + 70ms Network Lag) + 0ms to download the page
当在OutputCache上找到页面时,对用户的影响就是不等待页面开始显示这么多东西.
当页面未被修改时,效果是用户几乎正确地看到页面,因为不等待页面下载.
当内容是静态的(如图像)并在缓存中找到时,浏览器会以正确的方式显示而不询问服务器,因此这是用户看到本地缓存上的内容的更快的方式.
| 归档时间: |
|
| 查看次数: |
4714 次 |
| 最近记录: |