1

在我的主页上有一个大尺寸的图像(~6 MB)。这是一种地图。
我想将该图像存储在用户的浏览器中,即使他们关闭浏览器或重新启动他们的电脑,有可能以某种方式吗?如果重要,该图像将在 CSS 文件中使用。
我的主机带宽很小,所以我想尽可能在​​用户的浏览器上存储该图像感谢任何提示。

4

5 回答 5

4

有几个选项,其中一些比其他选项更复杂。

最跨浏览器的方法是确保将缓存标头设置为长缓存时间,并保持 URL 一致(类似于@Petah 的建议)。

一些浏览器支持HTML5 File API。如果支持,您可以使用 JavaScript 在此处存储图像。

您也可以使用HTML5 AppCache(同样支持有限),但这意味着您必须小心构建应用程序的方式 - 因为 HTML 页面将被永久缓存,直到缓存清单更改。

您还可以将您的图像序列化为数据 URL得到很好的支持)并以某种方式在本地存储该字符串(localstorage、cookie),但由于 cookie 的大小限制很小,并且您不想在 HTML 中存储 6MB'cos该页面将永远加载,这可能不是一个很好的选择。

于 2012-09-03T08:36:54.213 回答
0

您必须为该图像设置正确的 HTTP 缓存标头。有了它们,您将告诉浏览器(以及介于两者之间的任何代理)尽可能长时间地保留该图像。但这并不能保证一旦用户拥有该图像,他将永远拥有它。它可能由于多种原因从缓存中删除(用户清除缓存,浏览器驱逐它,...)。

从这个谷歌搜索开始。如果您想要更具体的内容,您必须告诉我们您使用的是什么网络服务器。

于 2012-09-03T08:30:36.243 回答
0

如果您担心带宽,为什么不将图像上传到某些图像服务(互联网上有很多),并将其 url 包含在您的 css 中?

这些(免费)服务存在一些问题,您应该留意:

  • 如果包含在其他网站(例如样式表、论坛帖子中)中,某些图像托管服务将阻止图像的呈现(通常使用带有“不允许...”文本的图像),因此您必须选择不这样做的图像那
  • 如果是免费服务,图片的加载时间可能会有很大差异,这没什么大不了的,因为一旦加载到客户端浏览器中,它就会被缓存
  • 服务可能暂时不可用,这可能会给您的客户带来不便
于 2012-09-03T08:40:16.533 回答
-3

试试这个.. 请将 href= 更改为您的图像路径,并将 download= 更改为要保存的文件的名称,或者您可以将其留空

<a href="imagepath/image.jpg" download="myImage.jpg">Click here to
download image</a>

于 2018-01-11T06:00:07.190 回答