有没有办法在不下载资源的情况下检查资源是否被浏览器缓存?大多数问题和答案都是旧的,我相信现在情况已经发生了变化,并且有更好的方法。
最佳答案
您可以利用 fetch
API 及其对应的 AbortController
来实现此功能,但有一定误差(预期漏报)。
它是这样的,获取
需要的资源并附加一个信号。在少量时间内中止,例如。 4 毫秒。如果提取在短时间内返回,则绝对缓存。如果获取被中止,它可能没有被缓存。这是一些代码:
async checkImageCached(url, waitTimeMs = 4) {
const ac = new AbortController()
const cachePromise = fetch(url, {signal: ac.signal})
.then(() => true)
.catch(() => false)
setTimeout(() => ac.abort(), waitTimeMs)
return cachePromise
}
关于javascript - 如何检查资源是否被浏览器从 Javascript 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59787487/