我喜欢有图片,css和javascript缓存的客户的侧对他们的浏览器,当他们载了一个网页。有这么多不同类型的高速缓存我困惑为哪些用asp.net 视.

它还有可能有他们的浏览器检查新的或修改版本,这些文件?

谢谢!

有帮助吗?

解决方案

浏览器照顾这个自动为您,其实。你必须去你的出路,让他们不缓存CSS,JS,HTML和图像。

我没那么熟悉ASP MVC,但我认为他们缓存类型你的想法是指令缓存为您创建的动态输出服务器端?

其他提示

您需要在服务器上设置缓存控制标头。你可以在你的web.config坚持这样做:

<system.webServer>
  <staticContent>
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
  </staticContent>
</system.webServer>

这将现在告诉浏览器,甚至检查上的任何静态的新内容30天。

有关第二个问题,提供增加查询字符串到内容的一些机制。在我目前的项目中,我们压缩和结合,JavaScript和CSS作为构建的一部分。将在页面中的链接时,是如下:

<script src="/Resources/Javascript/Combined.js?v=2.2.0.1901" type="text/javascript"></script>

在查询字符串是Major.Minor.0.Changeset数目,并且改变随时我们推构建,造成客户端重新获取它。完全相同的事情发生在他们的<link>元件的样式表。

@保罗克雷西和@Salsa都是正确的,浏览器将处理由默认缓存,只要该链路是相同的。

至于你提到的这个时候你需要,你有没有保证客户端的浏览器会检查是否有更新的版本更新这些文件提出了一个问题。在许多情况下,他们只要这样做,其可以创建一个照出的用户体验的时间已经过去了一个固定的量之后。

有一些已经问本网站为如何处理,提醒客户端浏览器的刷新缓存。总之,它们都依赖于当您更改文件的内容改变的链接。

可以附加一个参数的URL,将仅用于高速缓存的目的,例如:

<script src="/myJavascript.js?version=4"></script>

然后,只需更改版本号当您更改的内容,并需要强制客户端刷新ALA的这个答案

看看在回答我张贴在这里以最大化使用缓存的权益,并且避免了与需要用户 '硬' 刷新(控制 + F5 )。

它采用了内容本身的URL的MD5哈希值,从而使URL保持不变,只要文件是一样的,这是真正的目标。计算散列是超级快,而且它的缓存在内存中的服务器上,以便页面呈现不会明显放缓。整个事情被以微秒计算,以及带来的益处已经(在我的网站潜水员的)真棒为止。我把它应用到所有图像,CSS和JS与图像从CSS文件中的例外,因为他们不是服务器生成我的网站上(还)

这是最好的IIS或在你的配置文件中完成的 - 确保你的CSS / JS /图像设置为永不过期

当你从你的代码中引用他们的话,建议附加版本或集结日期的文件名,例如的script.js?20100120,这样,当你来到我身边来改变它们,你只需要改变的版本从所有已缓存它的浏览器强制刷新。

客户端缓存是自动处理通过浏览器时 适当设置 Cache-Control头 和置网。config。这样的:

<system.webServer>
    <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00.00:10:00" />
    </staticContent>
</system.webServer>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top