Есть следующий код, который должен создавать 16млн элементов (в данном случае только 4к, нужно 16*16*16 заменить на 16*16*16*16*16*16). И после 5млн где то хром сьедает всю оперативку и все. Здесь где то утечка? Что делать?
const body = document.querySelector('body');
for (let i = 0, l = 16*16*16; i < l; i++) {
const el = document.createElement('div');
el.style.backgroundColor = '#' + addZero(6, i.toString(16));
body.appendChild(el);
}
function addZero(digits_length, source){
while(source.length < digits_length)
source = '0' + source;
return source;
}
body {
display: flex;
flex-wrap: wrap;
margin: 0;
padding: 0;
}
div {
width: 1px;
height: 1px;
}
Я думаю это не утечка памяти, а она просто вся занимается. Ваш код без рендеринга обрабатывается ~ за 8 секунд, вес всего html > 700мб, на отрисовке такого кончаются все ресурсы и браузер либо виснет либо грохает вкладку. В примере нехватает еще одного *16, превышается лимит на размер string.
var start = Date.now();
const body = document.querySelector('body');
const target = 16*16*16*16*16;
var elms = '';
for (let i = 0, l = target; i < l; i++) {
elms += '<div style="background-color:#'+addZero(6, i.toString(16))+'"></div>';
}
//body.innerHTML = elms;
function addZero(digits_length, source) {
while (source.length < digits_length)
source = '0' + source;
return source;
}
console.log(Date.now() - start);
console.log(elms.length/1024);
body {
display: flex;
flex-wrap: wrap;
margin: 0;
padding: 0;
}
div {
width: 1px;
height: 1px;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Суть проблемы, если заходить через браузер safari(телефон), на сайте в меню нужно нажимать 2 раза на категорию/подкатегорию, что б открыть ее, на всех...
У меня не работают вставки php 70 типа <div><?=$myText;?></div> и в скриптах :