1

我的页面上有一些 JS、CSS、图像文件,并且我正在使用缓存,所以当我重新访问我的页面浏览器时不会访问我的服务器。

但是当我刷新我的页面时,浏览器会访问服务器并且我的服务器返回304 NOT MODIFIED.

我知道这是常见的现象,但我想知道是否有任何方法可以防止浏览器访问我的服务器并在用户刷新页面时从缓存中加载它们。

例如,当我刷新谷歌页面时,他们的一些资源不是从缓存中加载的304 NOT MODIFIED

任何人都可以帮助网络新手:) 吗?

4

1 回答 1

0

这是正常行为,通常我会忍受它。正如您所说,只要您正确设置了过期或最大年龄设置,那么 304 消息只会在刷新时发生。只要您的用户没有定期刷新,那么在人们浏览网站时通常不会出现 304。

但是,在某些情况下,即使用户刷新了页面,您也可以阻止 304 消息。

  1. 通过 Javascript 设置元素的背景图像。
  2. 使用 iframe 拉取具有 max-age 的内容(请注意,他们仍然可以通过右键单击 iframe 并单击刷新来刷新 iframe)。

如果您想尝试一下,这是一个背景图像示例...

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div id="example-image" style="height: 250px;"></div>
<script type="text/javascript">
    $("#example-image").css("background", "white url(/images/myImage.jpg) no-repeat");
</script>

更新

我在想 AJAX GET 会起作用,但似乎我错了,所以我把它从列表中删除了。无论如何,我上面列出的解决方案确实有效,但它们笨重且令人不快,这就是为什么我通常不会为此烦恼。


更新#2

Steve Souders 有一些关于这个问题的有趣实验...... http://www.stevesouders.com/blog/2013/02/26/reloading-post-onload-resources/

于 2013-06-02T14:43:45.213 回答