Вы можете использовать API fetch
и его корреспондент AbortController
для достижения этой функциональности с пределом погрешности (ожидаемые ложные отрицания).
Это выглядит так: fetch
требуемый ресурс с прикрепленным сигналом. Прервать за небольшое количество времени, например. 4ms. Если выборка возвращается за короткое время, она абсолютно кэшируется. Если выборка была прервана, она, вероятно, не кэширована. Вот некоторый код:
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
}