尽管更新了图像仍然从缓存加载

时间:2017-01-05 12:07:17

标签: php image caching upload reload

我使用PHP文件上传将替换图像上传到服务器。它与旧图像的名称相同。

上传后,旧图像仍会显示在浏览器缓存中,但当然可以在大多数浏览器上使用Control + F5刷新 - 然后显示新图像。

我想自动获取要显示的新图像,而不涉及用户(他们一直忘记刷新)。这个问题已被多次询问和回答,例如在HTML - I upload new image to site, old image still loads

我尝试的解决方案是,在文件上传后,我将“假”数据添加到图像src属性,从而:     src =“img.jpg?t = x”(其中x是用php生成的时间)。

这是有效的,在文件上传程序中我看到了新图像。据说它导致从服务器加载图像,而不是缓存。我不确定我理解这个机制。

我原以为这也会强制在缓存中刷新此图像的副本,但是下次加载图像时,无论是在同一个脚本中还是在同一个浏览器中的不同页面中,旧图像仍然是显示。换句话说,旧图像仍然在缓存中并且仍在使用中。当然你可以刷新,然后一切都很好。

我已在多种浏览器上测试过此功能,包括Chrome和Firefox。

有没有办法强制加载新图像,不仅在我添加“假”参数时,还要在缓存中替换。我确定必须在某个地方回答,但我找不到有用的东西。

0 个答案:

没有答案