2012-08-29 28 views
5

我想要在浏览器中缓存一个特定的aspx页面。我有充分的理由把它作为一个ASPX页面,我需要浏览器上的缓存。浏览器的缓存是否考虑到URL中的参数? (ASPX页面)

现在,在服务器缓存上,我可以通过参数改变缓存。浏览器在缓存页面响应时是否也考虑了参数?

E.g.将以下两个响应保存为浏览器上的两个不同缓存项目http://mypage.com/page.aspx?Param=1http://mypage.com/page.aspx?Param=2

回答

5

是,浏览器将把这些网址作为2个不同的资源,因此将分别缓存它们(如果缓存头指示这样做)。

您可以使用Fiddler轻松地进行测试。

+0

感谢您指向小提琴手的指针。虽然我没有用它来解决这个问题,但它对我所拥有的其他东西肯定有帮助。 –

2

编辑2: How to instruct browsers to ignore GET parameters when caching a resource描述了一个类似的问题,如果要将这两个页面缓存为同一页面,则可能会很困难。如果你想他们是不同的,你应该默认行为来设置,但要确保你的

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="CACHE"> 

标记设置明确地告诉浏览器来做到这一点。

原始回答:

你可以选择,如果你想要它。例如,如果你想那些缓存不同,设置输出缓存中的VaryByParam =“参数”:

<%@ OutputCache Duration="60" VaryByParam="Param" %> 

,如果你不使用的参数选项组合不同,这两个页面将缓存相同。如果你想改变多个参数,用分号分隔它们。如果你想通过所有PARAMS变化,我们*通配符:输出缓存

<%@ OutputCache Duration="60" VaryByParam="*" %> 

更多信息: http://msdn.microsoft.com/en-us/library/y96218s9.aspx

编辑: 刚刚重新阅读你的问题。这将导致服务器端的缓存,而不是浏览器。