Выполнение 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 только в том случае, если вкладка находится в одном окне.
Как только пользователь возвращается на вкладку, прогресс продолжается.
Если пользователь просто расфокусирует браузер (например, открыв другую программу), но без изменения вкладки в окне браузера, процесс продолжается. Кроме того, если пользователь открывает другое окно браузера, не меняя вкладку в окне браузера, в котором находится эта вкладка, процесс также продолжается.
В чем может быть проблема?