是否可以将图像存储在用户';的浏览器


Is it possible to store image on user's browser

在我的主页上有一个大尺寸的图像(约6 MB)。这是一张地图
即使用户关闭浏览器或重新启动电脑,我也想将图像存储在用户的浏览器中,这可能吗?如果重要的话,该图像会在CSS文件中使用
我的主机带宽很小,所以我想尽可能长时间地将图像存储在用户的浏览器上谢谢你的提示。

这方面有一些选项,有些选项比其他选项更复杂。

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

有些浏览器支持HTML5文件API。如果支持的话,您可以使用JavaScript在这里存储图像。

您也可以使用HTML5 AppCache(也有有限的支持),但这意味着您必须小心如何构建应用程序,因为HTML页面将永远缓存,直到缓存清单发生变化。

您也可以将您的图像序列化为数据URL(相当受支持),并以某种方式在本地存储该字符串(localstorage,cookie),但由于cookie的大小限制很小,而且您不想在HTML中存储6MB,因为页面加载需要很长时间,所以这可能不是一个好的选择。

您应该查找缓存最佳实践:

  • https://developers.google.com/speed/docs/best-practices/caching
  • http://msdn.microsoft.com/en-us/library/aa478965.aspx
  • http://developer.yahoo.com/performance/rules.html

您必须为该图像设置正确的HTTP缓存标头。有了它们,你会告诉浏览器(以及其间的任何代理)尽可能长时间地保持该图像。但这并不能保证一旦用户拥有了那个张图片,他就会永远拥有它。它可以从缓存中删除,原因有很多(用户清除缓存,浏览器驱逐它,…)

从这个谷歌搜索开始。如果你想要更具体的东西,你必须告诉我们你正在使用什么网络服务器。

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

这些(免费)服务有一些问题,你应该关注:

  • 如果包含在其他网站上,如样式表、论坛帖子。。。所以你必须选择一个不这么做的
  • 如果镜像是免费服务,那么它的加载时间可能会有很大的变化,这没什么大不了的,因为一旦在客户端浏览器中加载,它就会被缓存
  • 服务可能暂时不可用,这可能会给您的客户带来不便

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

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