7

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

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

例如,以下两个响应是否会在浏览器上保存为两个不同的缓存项? http://mypage.com/page.aspx?Param=1http://mypage.com/page.aspx?Param=2

4

2 回答 2

6

是的,浏览器会将这些 url 视为 2 个不同的资源,因此它将分别缓存它们(以防缓存标头指示这样做)。

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

于 2012-08-29T14:39:46.990 回答
2

编辑 2: 如何在缓存资源时指示浏览器忽略 GET 参数描述了类似的问题,如果您想将这两个页面缓存为同一个页面,可能会很困难。如果您希望它们不同,则应设置为默认行为,但请确保您的

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

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

原答案:

如果你愿意,你可以选择。例如,如果您希望它们以不同的方式缓存,请使用 varyByParam="param" 设置输出缓存:

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

如果您不使用参数变化选项,这两个页面将缓存相同。如果你想改变多个参数,用分号分隔它们。如果您想根据所有参数进行更改,请使用 * 通配符:

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

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

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

于 2012-08-29T14:41:23.797 回答