Я получаю около 100 изображений и сохраняю их в виде BLOB-объектов.
Вот пример кода.
let response = await axios.get(t.url, {
responseType: 'arraybuffer'
});
const binaryContent = response.data;
const blob = new Blob([binaryContent], {
type: "image/png"
})
imageList[ts] = URL.createObjectURL(blob);
Когда пользователь выполняет прокрутку, я заменяю элемент изображения src на соответствующий BLOB-объект.
Я проверяюон хорошо работает в Desktop Chrome и iOS Safari.
Однако в Android Chrome время извлечения составляет около 900 мс, а замена изображения выполняется очень медленно.
99% времени извлечения останавливается.
Как можноЯ это исправлю?
Когда я изменяю objectURL на dataURL, время задержки исчезает.
imageList[ts] = await blobToDataURL(blob);
async function blobToDataURL(blob) {
return new Promise((res, rej) => {
var reader = new FileReader();
reader.onload = (function () {
return function (e) {
res(e.target.result);
};
})();
reader.readAsDataURL(blob);
})
}