3

我正在做这样的事情:如果图像缓存在用户计算机上并且其时间戳与服务器上的相同,则显示缓存版本;否则,请勿从服务器加载图像。

我想也许 JavaScript 可以做到这一点,所以我将这篇文章标记为 javascript。如果不合适,请帮我重新标记它。

编辑: 在这里,我将提供有关我将要实现的内容的更多详细信息。我正在开发类似基于 Web 的文件资源管理器的东西,只有当用户单击每个图像旁边的“查看缩略图”按钮时才会加载缩略图。如果缩略图已被缓存,则使用缓存版本;否则,显示通用图像图标。

4

5 回答 5

1

我的 RSS 阅读器,对于有很多帖子的提要,会加载一整页的帖子。条目的数量取决于实际窗口的大小。当我滚动到列表底部时,如果有更多帖子,它将加载另一个页面。

这适用于您的文件浏览器吗?这意味着用户总是会加载 20 个缩略图,但除非有必要,否则永远不会再加载。我从来没有使用过需要我点击查看缩略图的文件资源管理器。

于 2010-10-29T07:58:35.733 回答
1

这对我来说似乎有点奇怪。

您将您的功能描述为显示文件列表并为用户提供单击“查看缩略图”的选项。这意味着它只会在用户特别请求图像时尝试从服务器加载图像 - 因此您已经停止了大量加载大量图像的可能性。

因此,如果图像不在我的浏览器缓存中(在我第一次访问时不会出现),那么我将获得通用图像图标。在我下次访问时,图像仍然不会在我的缓存中,所以我将再次获得通用图像图标。那么除了通用图像图标之外,我将如何看到任何东西呢?

现在进入一个解决方案,我承认它不符合您的要求,但这是此类软件的典型实现。

  1. 使用“显示缩略图”选项显示文件
  2. When the "show thumbnail" option is selected, load the thumbnail from the server (note that quite often a script will serve a resized image, which may also be stored on the server to avoid having to process the resize again for a certain amount of时间)
  3. 浏览器会自动缓存图片,并在一段时间内阻止进一步的服务器请求
于 2010-10-29T07:12:24.747 回答
0

这不是你必须担心的事情。浏览器会自动为您执行此操作。您必须确保服务器发送正确的标头。对文件进行适当的缓存设置确实有助于避免额外的 HEAD 请求。

于 2010-10-29T06:11:17.573 回答
0

你不能在服务器上移动/删除/重命名它吗?然后使用 javascript Image.onError处理损坏的图像,为没有缓存图像的人隐藏损坏的图像标签。

我认为这将为那些在他们的浏览器中拥有它的人显示缓存版本。其余的人不会看到任何东西

于 2010-10-29T06:39:32.033 回答
0

浏览器可以发送“If-Modified-Since”和“ETag”标头来向服务器表明它确实具有资源的版本。检查有关这些标头的W3 缓存规则。

您可以在服务器上查询这些标头,如果未找到则发回通用图标,如果找到则返回“304 Not Modified”响应。

于 2010-10-29T07:05:05.967 回答