Javascript 在修改了一个;img.png“;,img src=';img.png';“标签继续变老”;img.png“;

Javascript 在修改了一个;img.png“;,img src=';img.png';“标签继续变老”;img.png“;,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个图像“img.png”,内容为“A”,用户将此img的内容更改为“B”。全部通过Ajax实现。当我尝试将这个“img.png”放在一些img src标签中时,它会显示“A”内容而不是“B”,但当我重新加载页面时,他会正确地显示“B”。 OBS:显然,这是一个简化和总结的案例,但一些非常相似的事情正在发生在我身上。请提供帮助。由于图像正在“重复使用”相同的URL,您的逻辑还应该向图像URL附加一个带有版本号或时间戳的查询字符串。还简化了: timestamp = Date.now();

我有一个图像“img.png”,内容为“A”,用户将此img的内容更改为“B”。全部通过Ajax实现。当我尝试将这个“img.png”放在一些img src标签中时,它会显示“A”内容而不是“B”,但当我重新加载页面时,他会正确地显示“B”。 OBS:显然,这是一个简化和总结的案例,但一些非常相似的事情正在发生在我身上。请提供帮助。

由于图像正在“重复使用”相同的URL,您的逻辑还应该向图像URL附加一个带有版本号或时间戳的查询字符串。还简化了:

timestamp = Date.now();

img.src = sitename="/image.png?"+ timestamp;

浏览器缓存…除非url发生了某种变化,或者您最初输出了带有适当标题的图像,否则浏览器可以自由缓存图像,并看到“啊,我正在抓取/images/kittens.jpg,我之前已经抓取了,所以我不必费心抓取新副本”。我想象过类似的情况。你能告诉我一些改变标题的方法吗?我不认为破坏缓存是个好主意。我可能同意;也不是对不同的图像使用相同的URL,但我没有在这里编写用例。;)常见的方法是添加版本号,您可以在图像更改时进行更新。文件名不需要更改,缓存仍然可以工作。顺便说一句,它不会完全破坏缓存。只要图像不再被更改,大多数缓存都可以使用“image.png?123456789”…您的时间会发生变化,所以是的