代码之家  ›  专栏  ›  技术社区  ›  DonX

浏览器缓存

  •  1
  • DonX  · 技术社区  · 16 年前

    我正在开发一个使用大量图像的网站。我想让所有图像都存储在浏览器的缓存中,直到某个指定的时间。现在它存储在浏览器的缓存中。但是,如果我们在浏览器中刷新页面,它会向服务器请求特定的资源。服务器用304代码(未修改)响应。我想避免出现这种情况我正在jsp/servlet中开发应用程序。图片希望在浏览器中存储特定的时间。如果时间过期,它可以向服务器发送资源请求。

    有没有可能实现这一点?有人能帮我一下吗。

    谢谢。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Alex Martelli    16 年前

    在服务器端工作的你无法阻止浏览器在被明确要求刷新页面时检查它正在缓存的内容——这完全是你无法控制的。您可以(也应该)声明缓存的有效期在2099年或更高版本过期,但您不能 浏览者相信(或任何其他)到期日期、期限——开发浏览器的程序员有他们的想法,如何最好地为客户服务,而你只是不能强迫他们。

        2
  •  0
  •   Chris Tonkinson    16 年前

    理论上,如果浏览器安装了Gears之类的东西,那么您可以在客户端存储它们,并用JavaScript而不是普通的HTTP加载它们-首先检查本地数据存储,然后在找不到图像时返回服务器。

    但我不确定你能不能用齿轮等存储二进制数据或图像。

        3
  •  0
  •   David    16 年前

    如果使用Apache,可以使用.htaccess文件调整不同文件夹或文件类型的缓存和过期头。

    http://www.askapache.com/2006/htaccess/speed-up-sites-with-htaccess-caching.html

        4
  •  0
  •   n8wrl    16 年前

    我确信浏览器中的显式刷新会导致它重新加载所有资源,忽略缓存过期设置。