Самый быстрый способ опустошить много дел, по классу?

0

На данный момент я использую $('.class:not(:empty)').html(''); и это все еще занимает слишком много времени для меня.

Например, занимает ~ 2 секунды с ~ 1200 непустых divs и ~ 2000 divs.

Кроме того, было бы проще просто полностью удалить divs?

  • 1
    Почему бы тебе просто не попытаться .remove их?
  • 0
    Самый быстрый способ это: JS. не JQ.
Показать ещё 2 комментария
Теги:

2 ответа

7
Лучший ответ

Вы можете попробовать:

$('.class').empty();

Вы не будете фильтровать все .class es для непустых, которые требуют времени - просто очистите все из них.

Тест производительности:

$('.class').empty();               // 23.810ms, 31.646ms, 24.003ms ~ 26,486ms
$('.class:not(:empty)').empty();   // 25.469ms, 27.323ms, 24.964ms ~ 25,919ms

$('.class').html('');              // 34.353ms, 48.778ms, 44.487ms ~ 42,539ms
$('.class:not(:empty)').html('');  // 34.751ms, 27.494ms, 35.428ms ~ 32,558ms

И простое удаление всех предметов:

$('.class').remove;                // 77.650ms, 68.968ms, 69.281ms ~ 71,966ms

Этот тест проводился с:

$('body').empty()
for (var i = 0; i < 1200; i++) $('<div class="class">not-empty</div>').appendTo($('body'));
for (var i = 0; i < 2000; i++) $('<div class="class"></div>').appendTo($('body'));

console.time('timer');
  // proper method
console.timeEnd('timer')
  • 0
    Разве для запуска .empty () на непустых из них не требуется больше времени, чем для их фильтрации?
  • 0
    @ Богдан Я сделал несколько тестов. Как видите, в первой паре тестов нет разницы между .class и .class:not(:empty) . Однако ключом к производительности в вашей проблеме является использование .empty() вместо .html('') .
Показать ещё 2 комментария
0

Попробуй это:

$("div.ClassName").html('');

или

$("div.ClassName").empty();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню