【问题标题】:PHP user profile picture cachePHP用户个人资料图片缓存
【发布时间】:2012-08-05 18:16:24
【问题描述】:

好的,所以在我的网站上,用户可以上传个人资料图片。但问题是,如果他们通过上传和覆盖现有的个人资料图片来更新它,他们必须等待浏览器缓存清除,并且网站上的其他人也一样。

我知道我可以通过在图像 URL 的末尾添加一个字符串来轻松解决这个问题,例如?id=22185 ,但这会使我的网站加载时间非常慢。

你们能不能推荐一种方法,让网站上的每个用户都能立即更新用户的个人资料图片?

【问题讨论】:

  • 使用更新的时间戳作为字符串。

标签: php image caching


【解决方案1】:

使用文件修改时间作为 URL 变量。这样,图像将被缓存,直到该数字发生变化,这只会在文件更新时发生。

【讨论】:

  • 所以我会做 而不是
  • 是的!这就是有多少网站阻止缓存图像、Js、CSS 等。
  • 我应该将更新时间存储在数据库表中的什么位置?如果是这样肯定会杀死我的服务器,不得不运行一个 sql 查询来获取更新时间戳以放在 URL 的末尾。
  • 使用php获取文件的修改时间。如果您确实将有关图像的数据存储在数据库中,则只需为修改日期添加一列,并在获取图像的其他数据时检索该列。前者是我会怎么做,除非你不能,因为图像无法通过 php 的文件函数访问。
【解决方案2】:

为每张图片设置唯一的名称。当用户更改图像时,文件名也会更改,浏览器将加载新图像而不是提供旧的 FROM 缓存

【讨论】:

    【解决方案3】:

    您可以轻松地为您的文件添加时间戳,或者您可以使用 PHP 的“headers”函数来更改“Expire”参数。

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2014-10-05
      相关资源
      最近更新 更多