Возможно, я неправильно понимаю этот пример, но у меня было то, что кажется ошибочным представлением о том, что запрос DOM может быть относительно довольно медленным и искал «хороший» способ удалить все выборы из списка размером с переменного размера. QuerySelectorall для итерации DOM, чтобы найти выбранных детей, а затем итерацию этой коллекции, чтобы удалить класс выбора (Method_1).
Однако, кажется, неверно. Почему это так? Или я ошибся? PrettyPrint-Override ">let
p = document.querySelector('.parent'),
f = document.createDocumentFragment(),
c = p.children
;
function populate(n,mod) {
for (let d, i =0; i < n; i++) {
d = document.createElement("DIV");
if ( i % mod === 0 ) d.className = "sel";
f.append(d);
}
p.append(f);
console.log(`populated total of ${n} having ${p.querySelectorAll('.sel').length} selected.`);
}
function method_1() {
let n = Date.now();
p.querySelectorAll('.sel').forEach( v => v.classList.remove('sel'));
console.log(`method_1 elapsed: ${Date.now() - n}`);
}
function method_2() {
let
n = Date.now(),
i,
l = c.length
;
for (i =0; i < l; i++) {
c.classList.remove('sel');
}
console.log(`method_2 elapsed: ${Date.now() - n}`);
}
populate(100000,250);
method_1()
console.log(`Remaining selected after method_1: ${p.querySelectorAll('.sel').length} selected.`);
populate(100000,250);
method_2();
console.log(`Remaining selected after method_2: ${p.querySelectorAll('.sel').length} selected.`);< /code>
< /code>
< /div>
< /div>
< /p>
Мои результаты аналогичны: < /p>
populated total of 100000 having 400 selected.
method_1 elapsed: 1
Remaining selected after method_1: 0 selected.
populated total of 100000 having 400 selected.
method_2 elapsed: 84
Remaining selected after method_2: 0 selected.
Подробнее здесь: https://stackoverflow.com/questions/797 ... electorall
Разница между итерационным узлом. Children и Node.queryselectorall? ⇐ Javascript
Форум по Javascript
-
Anonymous
1753080306
Anonymous
Возможно, я неправильно понимаю этот пример, но у меня было то, что кажется ошибочным представлением о том, что запрос DOM может быть относительно довольно медленным и искал «хороший» способ удалить все выборы из списка размером с переменного размера. QuerySelectorall для итерации DOM, чтобы найти выбранных детей, а затем итерацию этой коллекции, чтобы удалить класс выбора (Method_1).
Однако, кажется, неверно. Почему это так? Или я ошибся? PrettyPrint-Override ">let
p = document.querySelector('.parent'),
f = document.createDocumentFragment(),
c = p.children
;
function populate(n,mod) {
for (let d, i =0; i < n; i++) {
d = document.createElement("DIV");
if ( i % mod === 0 ) d.className = "sel";
f.append(d);
}
p.append(f);
console.log(`populated total of ${n} having ${p.querySelectorAll('.sel').length} selected.`);
}
function method_1() {
let n = Date.now();
p.querySelectorAll('.sel').forEach( v => v.classList.remove('sel'));
console.log(`method_1 elapsed: ${Date.now() - n}`);
}
function method_2() {
let
n = Date.now(),
i,
l = c.length
;
for (i =0; i < l; i++) {
c[i].classList.remove('sel');
}
console.log(`method_2 elapsed: ${Date.now() - n}`);
}
populate(100000,250);
method_1()
console.log(`Remaining selected after method_1: ${p.querySelectorAll('.sel').length} selected.`);
populate(100000,250);
method_2();
console.log(`Remaining selected after method_2: ${p.querySelectorAll('.sel').length} selected.`);< /code>
< /code>
< /div>
< /div>
< /p>
Мои результаты аналогичны: < /p>
populated total of 100000 having 400 selected.
method_1 elapsed: 1
Remaining selected after method_1: 0 selected.
populated total of 100000 having 400 selected.
method_2 elapsed: 84
Remaining selected after method_2: 0 selected.
Подробнее здесь: [url]https://stackoverflow.com/questions/79708553/difference-between-iterating-node-children-and-node-queryselectorall[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия