VG2 Опубликовано 23 ноября, 2007 Жалоба Share Опубликовано 23 ноября, 2007 Нужен web-счетчик каких-либо процессов. Всякие тайм каунтдауны широко распространены. А вот как продемонстрировать пример, допустим, сколько человек умирает на Земле? При этом в реальном времени крутятся цифры как на счетчике километража спидометра. Вот сделал на джаве, но он должен считать независимо, с сервера, а не с момента загрузки страницы. И цифры должны крутиться не группами, а по одной и быстро. Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 23 ноября, 2007 Жалоба Share Опубликовано 23 ноября, 2007 раздели задачу на подзадачи входные данные - меняются динамически на сервере --пишутся в БД --пишутся в файл обработчик AJAX дергает данные и риал-тайм генерит динамический счетчик Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 mr.Faster спасибо. - меняются динамически на сервере А как такое возможно? Аякс для меня слишком сложен. В принципе я нащупал решение, только не знаю как реализовать в коде на ДжавеСкрипт. Вот этот скрипт нормально считает по одной цифре один раз в секунду. Параметр при этом у функции setTimeout = 1000 var g_iCount = 6500000; function startCountdown(){ if((g_iCount - 1) >= 0){ g_iCount = g_iCount + 1; numberCountdown.innerText = g_iCount; // setTimeout('startCountdown()',1000); } } Теперь допустим мы хотим показать динамику рождения в каждую минуту 261 человека. Делим 261 на 60 получаем 4,35 человека в секунду. Но с этими параметрами, т. е. setTimeout('startCountdown()',435); счет идет ПРИБЛИЗИТЕЛЬНО в 2 раза медленнее. Ладно, делим на два и ставим параметр как 217.5 - все равно в минуту никак точно 261 человек не получается. Можете проверить. Не понимаю в чем загвоздка.... По поводу динамических изменений на сервере. Есть такая идея. Сначала в переменные заносятся для примера общее количество населения (скажем 6500000000), затем дата на которое эта цифра верна (например 12.11.2007 12:34) и наконец динамику изменений (в нашем случае +261 чел/мин) . После этого, идет код который вычисляет при загрузке странички разницу между текущей датой и датой в переменной, умножает на динамику, плюсует к переменной начального количества населения и выводит в виде скрипта указанного выше с нужной динамикой. По идее это должно работать, но проверить пока не могу: не хватает знаний Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 ноября, 2007 Жалоба Share Опубликовано 24 ноября, 2007 вот тебе привязка ко времени: <script LANGUAGE="JavaScript"> var g_iCount = new Number(); var con_value = new Number(); var now3 = new Date(); var time_stamp = Date.UTC(2007, 11-1, 01, 00, 00, 00, 00);//месяц минус один var cur_time_stamp=now3.getTime(); var con_value=((cur_time_stamp-time_stamp)/1000)*4; var g_iCount = 6500000; g_iCount=g_iCount+Math.ceil(con_value); function startCountdown(){ if((g_iCount - 1) >= 0){ g_iCount = g_iCount + 4,5; numberCountdown.innerText = g_iCount; setTimeout('startCountdown()',1000); } } </script> Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 mr.Faster респектище, счас буду проверять. А насчет динамики и параметра setTimeout не подскажешь в чем у меня ошибка? Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 Вроде работает, но нужно разобраться и настраивать А нет справки русской по JS? Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 ноября, 2007 Жалоба Share Опубликовано 24 ноября, 2007 самое лучшее что я когда-то нашел http://www.webmaster.ee/javascript/js.html Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 ноября, 2007 Жалоба Share Опубликовано 24 ноября, 2007 ((cur_time_stamp-time_stamp)/1000) количество прошедших секунд с 01,11,2007 умножаем на количество рожденных в секунду *4; округляем и прибавляем к начальном значению хотя количество миллисекунд делить на 1000 наверное неправильно Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 Делим на 1000 это понятно - переводим миллисекунды в секунды. А умножаем на 4 для чего? Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 Кстати, если в 1 сек - 1024 миллисекунды, то из-за этого у меня может быть нестыковка! Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 ноября, 2007 Жалоба Share Опубликовано 24 ноября, 2007 ну на 4,5 можешь умножить это по контексту столько в секунду выползает Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 ну на 4,5 можешь умножить Т. е. цифры будут меняться не по одной а группой в каждой по 4? это по контексту столько в секунду выползает Что значит "по контексту"? По поиску в сети что ли? Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 ноября, 2007 Жалоба Share Опубликовано 24 ноября, 2007 4 человека в секунду рождается на 1 ноября 2007 года уже родилось 6500000 человек считаем количество секунд с 1 ноября по 24 ноября умножаем на 4 за 24 дня столько то родилось прибавляем начальное значение (на 1 ноября) получаем значение родившихся по текущий момент и твой вывод на странице (число изменяется на твой шаг 4,5) Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 Ага, врубился Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 Все же странные вещи в функции setTimeout('startCountdown()',1000); если оставить параметр 1000 как есть, то рождаться будет по 1 человеку в секунду, что не верно. Методом научного тыка (в прямом смысле засекал на секундомере 1 минуту и снимал показания со счетчика) выяснилось, что в 1 секунде действительно не 1000 миллисекунд, а 1024. Не понятно только почему везде указанно про 1 с = 1000 мс. Поэтому, если рождается 261 чел. в мин., то 261/60*1024=4454.4 и затем нужно поделить на 20 для того чтобы получилось 222.72 при котором скрипт реально выдает 261 человека в минуту, т. е.: setTimeout('startCountdown()',222.7); Откуда взялось это 20 понять совершенно не могу Ссылка на комментарий Поделиться на другие сайты More sharing options...
jnc Опубликовано 24 ноября, 2007 Жалоба Share Опубликовано 24 ноября, 2007 VG2 Почему 1024-то? Это байты на 1024 умножаются, а остальное - на 1000. Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 24 ноября, 2007 Автор Жалоба Share Опубликовано 24 ноября, 2007 jnc да я сам удивлен. Стал искать, вот например: http://www.google.ru/search?complete=1&...%D0%B4%D0%B5%3F Там есть упоминания про 1024 сек. Если 1 сек = 1000 мсек, то получается полная белиберда при проверке скрипта. А так хоть точно получается. Не считая странной кратности 20-ти. Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 25 ноября, 2007 Автор Жалоба Share Опубликовано 25 ноября, 2007 С другой стороны, если оставить 1000 и засечь на секундомере, то тоже все верно получается. Я кипю Ссылка на комментарий Поделиться на другие сайты More sharing options...
Stef1997 Опубликовано 5 декабря, 2007 Жалоба Share Опубликовано 5 декабря, 2007 С другой стороны, если оставить 1000 и засечь на секундомере, то тоже все верно получается. Я кипю Ты бы лучше гостевой занялся, админ хренов , а то нихрена не работает уже несколько дней Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 5 декабря, 2007 Автор Жалоба Share Опубликовано 5 декабря, 2007 Stef1997 ты бредишь. Вчера работала, сегодня тоже. И вообще, это тема для умныхлюдей. Пейсдуй в тему "Эмо... как им стать" это тебе ближе Сорри за оффтоп. И Стефа необразованного простите тоже... Ссылка на комментарий Поделиться на другие сайты More sharing options...
VG2 Опубликовано 3 февраля, 2008 Автор Жалоба Share Опубликовано 3 февраля, 2008 Вот суки украли идею Хотя у меня все намного круче было задумано. А это попса. http://timer.mkaz.ru/ Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.