Выполнение JSZIP останавливается при открытии новой вкладки

Используя следующий код, я создаю новые zip-файлы.

      let newZipFile = await compressAllDicoms(newDicoms);


async function compressAllDicoms(dicoms) {
let zip = new JSZip();
let i = 0;

eventBus.$emit('updateProgressText', "compressingDicoms");

dicoms.forEach((file) => {
    if (file) {
        zip.file(file.filename, file.content, {binary: true});
    }
});

return zip.generateAsync({type: "blob", streamFiles: true}, function updateCallback(metadata) {
    eventBus.$emit('updatePb', Math.ceil(metadata.percent));    
})

}

Следующая часть:

      return zip.generateAsync({type: "blob", streamFiles: true}, function updateCallback(metadata) {
    eventBus.$emit('updatePb', Math.ceil(metadata.percent));    
})

зависает, если пользователь переходит на другую вкладку браузера.

Это наблюдалось в FireFox и Chrome только в том случае, если вкладка находится в одном окне.

Как только пользователь возвращается на вкладку, прогресс продолжается.

Если пользователь просто расфокусирует браузер (например, открыв другую программу), но без изменения вкладки в окне браузера, процесс продолжается. Кроме того, если пользователь открывает другое окно браузера, не меняя вкладку в окне браузера, в котором находится эта вкладка, процесс также продолжается.

В чем может быть проблема?

0 ответов

Другие вопросы по тегам