получить каплю на 900 мс на Android Chrome - PullRequest
0 голосов
/ 20 сентября 2018

Я получаю около 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);
    })
}
...