我需要使用javascript轮询图像,并在找到图像后执行操作。这是我正在使用的代码:
pollUpload(file) {
const stopTime = Number(new Date()) + (1000 * 60)
const check = (resolve, reject) => {
setTimeout(() => {
const img = new Image()
img.onload = resolve
img.onerror = () => {
if (Number(new Date()) < stopTime) check(resolve, reject)
else reject(new Error('Timed out'))
}
img.src = file
}, 1000)
}
return new Promise(check)
},
这可行,但是我遇到了一个问题,即在第一个GET(即404)之后,响应被缓存,并且后续请求没有每次都发送。因此,可能需要一段时间才能生效。
对此的标准解决方案是将时间戳添加到查询字符串。但是,这是我的麻烦:这些图像使用aws签名的URL进行保护。因此,该网址需要与aws生成的形式完全匹配,并且不能在其后附加任何随机信息。
在这种情况下,是否还有其他建议的方法来防止缓存损坏的URL?