Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как добавить класс элементам с определенным интервалом (https://javascript.ru/forum/events/51063-kak-dobavit-klass-ehlementam-s-opredelennym-intervalom.html)

Vlasenko Fedor 23.10.2014 13:51

Цитата:

Сообщение от danik.js (Сообщение 337095)
Если код от этого короче

<style>
  .red {
    color: red;
  }
</style>
<p class="hello">Lorem ipsum dolor sit amet, consectetur</p>
<p class="hello">Sapiente in delectus dolorem reiciendis ditii</p>
<p class="hello">Quis dolore autem voluptatibus repellat</p>
<script>
var a=document.querySelectorAll("p.hello"),b=a.length,c=0,d=setInterval(function(){b--?a[c++].className+=" red":clearInterval(d)},2E3);
</script>

Таймер где в примере. Поставь 10000 параграфов коль спорить начал. И при чем здесь клонирование и вставка к этому примеру. Можешь рассматривать как задание заготовки

danik.js 23.10.2014 14:04

Poznakomlus, что ты хочешь доказать?
Мое утверждение: запрос querySelector, раз в две секунды - вообще не проблема, даже с тыщей параграфов.

Твое?

Vlasenko Fedor 23.10.2014 14:19

и ты считаешь это правильно выполнить даже при 1000
for (var count = 0, i = 0; i < 1000; count += ++i);
  alert('Всего вызовов querySelectorAll - ' + count + '\nлишних итераций - ' + (count - 1));

а то, что не тормозит так это хорошо http://learn.javascript.ru/play/aXxgxb :)
но зачем делать повторно вычисления которые можно сделать разово querySelectorAll я вызываю один раз, далее работаю с индексами

рони 23.10.2014 14:56

:)
<style>
  .red {
    color: red;
  }
</style>
<p class="hello">Lorem ipsum dolor sit amet, consectetur</p>
<p class="hello">Sapiente in delectus dolorem reiciendis ditii</p>
<p class="hello">Quis dolore autem voluptatibus repellat</p>
<script>
      var pAll = [].slice.call(document.querySelectorAll('p.hello')),
      timer = setInterval(function () {
      pAll.length ?  pAll.shift().classList.add('red') : clearInterval(timer)
    }, 2000);
</script>

ksa 23.10.2014 15:49

Poznakomlus, выполнение чего-то "по таймауту" не предполагает скоростного выполнения.

Т.ч. пример от рони выглядит куда приятнее и понятнее... :)

Vlasenko Fedor 23.10.2014 16:00

ksa,
То есть ты поддерживаешь идеологию что нужно писать понятливый код осуществляя при этом не нужные действия и вычисления для того, чтобы всем было понятно.
Ок принимается точка зрения. Я привел сколько итераций лишних на 1000

рони 23.10.2014 16:30

Poznakomlus,
мысли вслух ... те кто производит операции с огромным количеством обьектов ... врятли нуждаются в простом и понятном

ksa 23.10.2014 16:39

Цитата:

Сообщение от Poznakomlus
осуществляя при этом не нужные действия

Вот эта приписка мне не понятна... :D
Т.к. в примере оных просто нет. Там все действия нужные...

ksa 23.10.2014 16:41

Цитата:

Сообщение от Poznakomlus
Я привел сколько итераций лишних на 1000

Да хоть на мильен! Там все действия делаются с интервалом. Т.е. никакого ускорения и не требуется...

BETEPAH 23.10.2014 21:27

Цитата:

Сообщение от danik.js
BETEPAH, твой getByClassName тоже в IE8 не работает )

ага. Только это не мой, эта часть взята из топика ;)


Часовой пояс GMT +3, время: 12:16.