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

Php 是否可以将图像存储在用户';s浏览器,php,html,caching,local-storage,browser-cache,Php,Html,Caching,Local Storage,Browser Cache,在我的主页上有一个大尺寸的图像(~6MB)。这是一种地图。 我想在用户的浏览器中存储该图像,即使他们关闭浏览器或重新启动电脑,是否可能? 如果有关系,该图像将在CSS文件中使用。 我的主机带宽很小,所以我想在用户的浏览器上尽可能长时间地存储该图像 感谢您提供的提示。您应该查找缓存最佳实践: 您必须为该映像设置正确的HTTP缓存头。有了它们,您将告诉浏览器(以及其间的任何代理)尽可能长时间地保留该图像。但这并不能保证一旦用户拥有了这个图像,他就会永远拥有它。它可以从缓存中删除,原因有很多(

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

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


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


从这个开始。如果您想要更具体的信息,您必须告诉我们您使用的是什么web服务器。

有几种选择,有些比其他更复杂

最跨浏览器的方式是确保设置URL,并保持URL的一致性(类似于@Petah的建议)

支持。如果支持,您可以使用JavaScript在此处存储图像

您也可以使用(也可以使用),但这意味着您必须小心如何构造应用程序,因为HTML页面将永远被缓存,直到缓存清单发生更改


您也可以序列化()并以某种方式在本地存储该字符串(localstorage,cookies),但由于cookies的大小限制很小,而且您不希望在HTML中存储6MB,因为加载页面需要花费很长时间,这可能不是一个好的选择。

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

对于这些(免费)服务,您应该注意以下几点:

  • 如果出现以下情况,某些图像托管服务将阻止图像的渲染(通常是带有文本“不允许…”的图像) 包括在其他网站,如样式表,论坛帖子。。。所以你必须选择一个不这样做的
  • 如果图像是免费服务,加载时间可能会有很大的变化,这没什么大不了的,因为一旦加载到客户端浏览器中,它就会被缓存
  • 服务可能暂时不可用,这可能会给您的客户带来不便

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


      如果用户未禁用缓存,web浏览器应自动保存图像。它只会检查您是否对图像进行了更改。您可能应该考虑优化图像。6mb对于基于web的图像来说是巨大的。必须采取措施将其最小化。是的,浏览器(如果设置为)将缓存图像,但这是您无法做到的control@Alex服务器绝对控制浏览器缓存的方式。。。。而且6MB在当今的带宽也不是很大。这在平均宽带连接上大约是10-15秒…6mb是巨大的。当然,很多人都有宽带。但不是所有人。另外,现在优化图像很简单。如果有选择的话,我不希望等待页面加载的时间超过几秒钟。看看Firefox,我可以告诉浏览器不要缓存图像。我还可以告诉浏览器限制缓存,使其不会缓存超过x字节的任何内容。那是我的控制权,不是servers@S.阿尔巴诺:是的,我知道浏览器会在第一次加载后保存图像,但当我关闭浏览器并再次打开时,图像会丢失。浏览器将需要再次下载它。我知道这一点,因为第一次运行后加载页面需要几秒钟的时间。不久前我检查了它,我设置了.htaccess max age=1296000(1个月),但重新启动电脑后,浏览器丢失了图像。我检查了HTTP头,有1296000个值,所以我的web服务器不会有问题哇,我第一次听说FileAPI和AppCache,非常感谢!我希望学习一些新的东西,即使我不会让它运行。顺便说一句,所有客户端存储技术都会有存储限制,对于6MB映像,您很可能会遇到这些限制。这里有一些关于Chrome如何处理它的信息:谢谢,我会尝试使用Robin在上面发布的这些新的HTML5功能,如果我遇到一些问题,然后我会使用你的建议,这是伟大的顺便说一句。就像你不存储在用户浏览器,但只是给用户的机会下载图像和安全的文件系统。此后,它将无法在css中访问。