浏览器的缓存是否考虑了URL中的参数? (ASPX页面)

时间:2012-08-29 14:36:25

标签: asp.net caching iis browser browser-cache

我想在浏览器中缓存一个特定的aspx页面。我有充分理由将其作为ASPX页面使用,我需要在浏览器上进行缓存。

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

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

2 个答案:

答案 0 :(得分:5)

是的,浏览器会将这些网址视为2个不同的资源,因此它会单独缓存它们(如果缓存标头指示这样做)。

您可以使用Fiddler轻松测试它。

答案 1 :(得分:2)

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

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

标记设置为明确告诉浏览器执行此操作。

原始答案:

您可以选择是否需要。例如,如果您希望缓存不同,请使用varyByParam =“param”设置输出缓存:

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

如果您不使用vary by param选项,则这两个页面都将缓存相同的内容。如果要根据多个参数进行更改,请使用分号分隔。如果你想改变所有参数,请使用*通配符:

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

有关输出缓存的更多信息: http://msdn.microsoft.com/en-us/library/y96218s9.aspx

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