/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* filesLoader.js :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: edbernar setTimeout(resolve, ms)); } async function loadFiles() { const percentText = document.getElementById('percentLoad'); const loadBar = document.getElementsByClassName('loading-bar')[0]; window.addEventListener('beforeunload', () => { Object.values(files).forEach((file) => { URL.revokeObjectURL(file); }); }); Object.entries(url_files).forEach(([key, value]) => { fetch(value) .then(response => response.blob()) .then(blob => { files[key] = URL.createObjectURL(blob); }); }); while (Object.values(files).length < Object.values(url_files).length) { const value = Math.round(Object.values(files).length * 100 / Object.values(url_files).length) + '%' percentText.innerText = value; loadBar.style.width = value; await sleep(50); } console.log(Object.values(files).length * 100 / Object.values(url_files).length + '%'); console.log('files loaded :', files); } export { files, loadFiles };