Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   100-200 уникальных таймеров на одной странице. (https://javascript.ru/forum/dom-window/39427-100-200-unikalnykh-tajjmerov-na-odnojj-stranice.html)

Aeliot 29.06.2013 18:24

100-200 уникальных таймеров на одной странице.
 
Везде пишут как вывести на странице один таймер. А как вывести на одной странице много (неопределённо неопределённое количество) уникальных таймеров? Есть список задач и напротив каждой из них нужно вывести таймер с дедлайном.

рони 29.06.2013 18:34

Aeliot,
а что мешает вывести 500 таймеров?

Aeliot 29.06.2013 18:48

Цитата:

Сообщение от рони (Сообщение 259187)
Aeliot,
а что мешает вывести 500 таймеров?

отсутствие знаний как это сделать :)

Aeliot 29.06.2013 20:15

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 259190)
Всё можно сделать одним таймером.

спасибо, интересная функция. Буду изучать.

Права, пока не понятно как стартовать все таймеры автоматически при загрузке страницы и как им всем объяснить кто откуда должен брать своё время для дедлайна.

Aeliot 29.06.2013 20:44

да. я пока больше в php и vba разбираюсь.
кое-что писал на javascript, но не много.

на сколько успел разобраться, в вашей функции основная отработка таймера идет в функции "update" и все таймеры хранятся в массиве "timers".

Aeliot 29.06.2013 21:27

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 259197)
не стоит уповать на этот мой старый говнокод, он написан из рук вон плохо. Я просто хотел показать, что всё не так сложно, как кажется на первый взгляд. ;)

На вашем уровне может это и "говнокод", а на моём это пока лучшее, что нашел. :)

Aeliot 29.06.2013 21:36

идея с хешем мне понравилась. Думается это лучше, чем перебирать через foreach все элементы (например, спаны) и обновлять подходящие.
Правда, ещё вопрос сколько такой вариант памяти съест, скажем на 500-а таймерах и не подвесит ли это страницу?

Deff 29.06.2013 21:50

Цитата:

Сообщение от Aeliot
Правда, ещё вопрос сколько такой вариант памяти съест, скажем на 500-а таймерах и не подвесит ли это страницу?

Там единственный таймер: interval = setInterval(update, 100);
Который тестит стек каждые 100мс

Aeliot 29.06.2013 22:34

Цитата:

Сообщение от Deff (Сообщение 259204)
Там единственный таймер: interval = setInterval(update, 100);
Который тестит стек каждые 100мс

Это понятно.
Я про другое.
В хэш "timers" много чего хранится. В функции "add" есть такие строки:
timers[nextId++] = {
      state: "active",
      deadline: now() + duration,
      row: row
    };

где "row" - это фактически строка таблицы примерно такого вида:
<tr class="timer-fired"><td>Вася</td><td>00:00:00</td><td><span class="timer-control">пауза</span><span class="timer-control">удалить</span></td></tr>

Если мы в хеш сохраним 500 таких строк, то это должно как-то сказаться на его производительности. :)

Aeliot 29.06.2013 22:48

Ладно, 500 таймеров на одной странице это возможное, но крайне редкое событие, ток что с памятью будем разбираться потом.

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


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