Javascript 有没有办法强迫浏览器在新创建的img上显示缓存的图像,而不询问服务器?

Javascript 有没有办法强迫浏览器在新创建的img上显示缓存的图像,而不询问服务器?,javascript,caching,Javascript,Caching,我会尽量简短明了: HTML示例: <span id="xyz"> <img src="/somescript.php?x=1&y=2" /> </span> somescript.php总是在请求时生成新图像(即使使用相同的GET参数),并返回带有无缓存头的图像(如预期,不应更改它) 当前行为:浏览器(在chrome中测试)总是要求服务器为每个新创建的图像提供/somescript.php?x=1&y=2 如果在之前已经加载了任何带有此类sr

我会尽量简短明了:

HTML示例:

<span id="xyz">
   <img src="/somescript.php?x=1&y=2" />
</span>
somescript.php
总是在请求时生成新图像(即使使用相同的
GET
参数),并返回带有
无缓存
头的图像(如预期,不应更改它)

当前行为:浏览器(在chrome中测试)总是要求服务器为每个新创建的图像提供
/somescript.php?x=1&y=2

如果在之前已经加载了任何带有此类
src
的图像,而没有第二次尝试询问服务器,那么新创建的图像将显示缓存的内容(因为服务器将返回新图像,而不是旧图像),是否有办法做到这一点

注:这更多的是理论问题,因为我知道,常见的解决方案是检查/更改旧的
img
src
,而不是创建一个新的,但是我想知道我的实际问题是否有答案


p.p.S:我在google/stack上找不到这个问题的答案,主要是因为最流行的一个关键字完全相同的问题与我的正好相反。

让php脚本以数据URL的形式返回图像,然后将它们存储在浏览器上的会话存储中怎么样?这是一个有趣的建议,我仍然想知道,是否存在仅客户端的解决方案(正如您看到的,标记中没有php)。如果您使用php脚本返回图像,缓存内容将完全位于前端,这将需要更改.php文件(以返回base64编码的图像)或使用同步
xmlhttprequest
读取原始数据(确保第一个图像将按预期加载-在
window.onload
fires之前)这很有趣,但对我来说不是很好的解决方案。
    tmp=document.getElementById('xyz');
    tmp.innerHTML='<img src="/somescript.php?x=1&y=2" />';