поэтому я пытаюсь поместить 15 изображений в кеш изображений, чтобы их не приходилось перезагружать каждый раз при перезагрузке страницы. Я использую кеш изображений.
Я думаю, что я ошибаюсь в том, что использую item.photoUrl в качестве модели просмотра и источника фотографии (хотя это то, что мне нужно). Я думаю, что он должен сделать (и хочу, чтобы он это сделал), это заменить 'item.photoUrl' заполнителем, а затем, когда изображение загружено, снова замените его фактическим изображением
Это код:
// items get passed into this function
putItemsInCache(items) {
const cache = new Cache();
cache.placeholder = fromFile("~/app/_assets/logo-.png");
cache.maxRequests = 15;
items.forEach((item) => {
const viewmodel = item.photoUrl;
item.set("imageSource", cache.placeholder);
// console.log(item);
cache.enableDownload();
let cachedImageSource;
const url = item.photoUrl;
// Try to read the image from the cache
const myImage = cache.get(url);
if (myImage) {
// If present -- use it.
cachedImageSource = fromNativeSource(myImage);
item.photoUrl.set("imageSource", cachedImageSource);
} else {
// If not present -- request its download + put it in the cache.
cache.push({
key: url,
url: url,
completed: (image, key) => {
console.log("items cached");
if (url === key) {
cachedImageSource = fromNativeSource(image);
item.photoUrl.set("imageSource", cachedImageSource); // set the downloaded iamge
}
}
});
}
});
}