На данный момент я использую $('.class:not(:empty)').html('');
и это все еще занимает слишком много времени для меня.
Например, занимает ~ 2 секунды с ~ 1200 непустых divs и ~ 2000 divs.
Кроме того, было бы проще просто полностью удалить divs?
Вы можете попробовать:
$('.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')
.class
и .class:not(:empty)
. Однако ключом к производительности в вашей проблеме является использование .empty()
вместо .html('')
.
Попробуй это:
$("div.ClassName").html('');
или
$("div.ClassName").empty();
.remove
их?