Сообщение от Rise
|
Чтобы освободить память
|
Понял, спасибо! Вот что получилось изобразить
async function manager(params) {
params = typeof params === 'object' ? params : {};
element = params.element;
url = params.url;
loadCss(url, ['icons', 'style', 'dropzone'])
await loadScript(url + '/helper/Helper.js')
let helper = new Helper({ element: element });
document.getElementById(element).insertAdjacentHTML('beforeend', helper.html())
}
function loadCss(url, style) {
let head = document.getElementsByTagName('head')[0]
style.forEach(file => {
let cssLink = document.createElement('link')
cssLink.href = url + '/css/' + file + '.css'
cssLink.type = 'text/css'
cssLink.rel = 'stylesheet'
head.appendChild(cssLink);
});
}
function loadScript(url) {
return new Promise((resolve, reject) => {
let elm;
const cleanup = () => {
elm.remove()
if (elm) {
elm.onerror = elm.onload = elm = null;
}
};
const done = () => {
cleanup();
resolve();
};
const error = () => {
cleanup();
reject('Failed to load script: ' + url);
};
elm = document.createElement('script');
elm.type = 'text/javascript';
elm.src = url;
elm.onload = done;
elm.onerror = error;
(document.getElementsByTagName('head')[0] || document.body).appendChild(elm);
})
}
Вопрос к гуру - стоит ли стили тоже асинхронно подключать?