Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2013, 18:24
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

100-200 уникальных таймеров на одной странице.
Везде пишут как вывести на странице один таймер. А как вывести на одной странице много (неопределённо неопределённое количество) уникальных таймеров? Есть список задач и напротив каждой из них нужно вывести таймер с дедлайном.
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2013, 18:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Aeliot,
а что мешает вывести 500 таймеров?
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2013, 18:48
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

Сообщение от рони Посмотреть сообщение
Aeliot,
а что мешает вывести 500 таймеров?
отсутствие знаний как это сделать
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2013, 20:15
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Всё можно сделать одним таймером.
спасибо, интересная функция. Буду изучать.

Права, пока не понятно как стартовать все таймеры автоматически при загрузке страницы и как им всем объяснить кто откуда должен брать своё время для дедлайна.
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2013, 20:44
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

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

на сколько успел разобраться, в вашей функции основная отработка таймера идет в функции "update" и все таймеры хранятся в массиве "timers".
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2013, 21:27
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

Сообщение от Дзен-трансгуманист Посмотреть сообщение
не стоит уповать на этот мой старый говнокод, он написан из рук вон плохо. Я просто хотел показать, что всё не так сложно, как кажется на первый взгляд.
На вашем уровне может это и "говнокод", а на моём это пока лучшее, что нашел.
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2013, 21:36
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

идея с хешем мне понравилась. Думается это лучше, чем перебирать через foreach все элементы (например, спаны) и обновлять подходящие.
Правда, ещё вопрос сколько такой вариант памяти съест, скажем на 500-а таймерах и не подвесит ли это страницу?
Ответить с цитированием
  #8 (permalink)  
Старый 29.06.2013, 21:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Aeliot
Правда, ещё вопрос сколько такой вариант памяти съест, скажем на 500-а таймерах и не подвесит ли это страницу?
Там единственный таймер: interval = setInterval(update, 100);
Который тестит стек каждые 100мс
Ответить с цитированием
  #9 (permalink)  
Старый 29.06.2013, 22:34
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

Сообщение от Deff Посмотреть сообщение
Там единственный таймер: 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:37.
Ответить с цитированием
  #10 (permalink)  
Старый 29.06.2013, 22:48
Интересующийся
Отправить личное сообщение для Aeliot Посмотреть профиль Найти все сообщения от Aeliot
 
Регистрация: 18.05.2013
Сообщений: 22

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Много таймеров на одной странице pimple2006 Элементы интерфейса 21 27.10.2015 08:06
Несколько таймеров на одной странице. Pothead Общие вопросы Javascript 1 27.05.2013 08:24
Несколько версий JQuery UI на одной странице. Casufi jQuery 2 10.11.2012 15:24
Как сделать 2 галереи JQuery на одной странице? orendzi jQuery 8 16.07.2011 15:22
Два одинаковых сценария на одной странице Genetics Общие вопросы Javascript 7 12.07.2009 01:46