Javascript.RU

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

Часики - реалтайм.
Доброго!
Камнями не нужно, я махонькая
Прошу совета, не знаю как решить.
Нужно вывести часики (цифровые), на странички, что-бы тикали секунды.
Данно: могу средствами php забрать utc с сервера.
могу прибавить допустим Москву.
Но это вывод - здесь и сейчас!
Средствами php не сделать тик-так!
Как я понимаю в js то же только таймер-счетчик от начало до конца.
Подскажите что-то! Может статейка есть!
В js не очень, совсем не очень - прошу без сухих ответов.
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2017, 22:48
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

oxana, тыц
Ответить с цитированием
  #3 (permalink)  
Старый 11.04.2017, 23:45
Новичок на форуме
Отправить личное сообщение для oxana Посмотреть профиль Найти все сообщения от oxana
 
Регистрация: 23.03.2017
Сообщений: 7

Rise - Реверансе, ЧМОК!
Я, уже секунды перемножаю на мнуты и.т.д
Поясните что это
var t = setTimeout(startTime, 500);
Спасибо!
У, жава весчь но мне не очень дается.
Еще раз Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 12.04.2017, 00:04
Новичок на форуме
Отправить личное сообщение для oxana Посмотреть профиль Найти все сообщения от oxana
 
Регистрация: 23.03.2017
Сообщений: 7

ой, что-то не понимаю где точка отсчета?
Ну работает же! С браузера? Не пойму.
Разжуйте плиз, когда время будет!
Спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2017, 03:08
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

oxana, из космоса это время твоего компа. Какой отсчет, откуда, куда и зачем? Пример запили.
Ответить с цитированием
  #6 (permalink)  
Старый 14.04.2017, 07:07
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

oxana, пилишь?)
Ответить с цитированием
  #7 (permalink)  
Старый 14.04.2017, 08:02
Новичок на форуме
Отправить личное сообщение для VikDuBBer Посмотреть профиль Найти все сообщения от VikDuBBer
 
Регистрация: 14.04.2017
Сообщений: 5

Rise, по каким соображениям обновление времени происходит каждые пол секунды, ведь если время выводится с точностью до секунд, то смысл делать эту проверку в два раза чаще? + плодится новый экзапляр таймаута каждые пол секунды с аналогичным кодом

пример рабочий, но есть второе решение за счет интервала, а не таймаута (неизвестно, почему его не учли)

Последний раз редактировалось VikDuBBer, 14.04.2017 в 08:50.
Ответить с цитированием
  #8 (permalink)  
Старый 14.04.2017, 08:34
Новичок на форуме
Отправить личное сообщение для VikDuBBer Посмотреть профиль Найти все сообщения от VikDuBBer
 
Регистрация: 14.04.2017
Сообщений: 5

oxana, немного переделанный вариант от Rise
<!DOCTYPE html>
<html>
<body>

<span id="time">(current time)</span>

<script>
setInterval(function() {
    time = new Date(); 
    document.getElementById('time').innerText = time.getHours()+":"+firstNull(time.getMinutes())+":"+firstNull(time.getSeconds());
}, 1000);

function firstNull(time) { return time<10 ? "0"+time : time; }
</script>

</body>
</html>

UPD: экстримально короткая и страшная запись кода))))
<!DOCTYPE html>
<html>
<body>

<span id="time">(time)<script>setInterval(function(){document.getElementById('time').innerText=(t=new Date(),t.getHours()+":"+((m=t.getMinutes())<10?'0'+m:m)+":"+((s=t.getSeconds())<10?'0'+s:s));},1000);</script></span>

</body>
</html>

Последний раз редактировалось VikDuBBer, 14.04.2017 в 11:52.
Ответить с цитированием
  #9 (permalink)  
Старый 14.04.2017, 08:41
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

VikDuBBer, по соображениям времени выполнения функции, например если предположить что минимальное время выполнения функции 1 мс, то через 1000 выполнений накопится смещение на 1000 мс и тд, а также по соображениям производительности:
Цитата:
В реальности срабатывания таймера могут быть гораздо реже, чем назначено, например если процессор перегружен, вкладка находится в фоновом режиме, ноутбук работает от батареи или по какой-то иной причине. отсюда
Ответить с цитированием
  #10 (permalink)  
Старый 14.04.2017, 09:30
Новичок на форуме
Отправить личное сообщение для VikDuBBer Посмотреть профиль Найти все сообщения от VikDuBBer
 
Регистрация: 14.04.2017
Сообщений: 5

Rise, и как раз по тем же соображениям становится некорректным постоянное объявление таймаута - он же и будет накапливать это смещение (допустим функция работает 15ms, таймаут объявляется в конце функции (твой же пример) с задержкой 500ms - по итогу функция сработает по истечению суммы времени, а т.е. 515ms между срабатываниями).

выходит еще один плюс в сторону эффективности интервала (во-первых экзепляр будет срабатывать ни больше, ни меньше через каждую секунду, не зависимо от того, насколько быстро отработал прошлый вызов (1ms или же 400ms), во-вторых не будет постоянного обяъвления дополнительного клона одной и той же логики)

P.S.: и да, рассинхрон хоть и будет, но опять же исключительно с локальным временем компа и то в пределах этой секунды, не стоит забывать. что у юзверя на машине может быть и не фактическое время (например настроеное вручную и без синхронизации с временным сервером)... при осмотре вопроса с этой стороны на рассинхрон даже в 1000ms можно положить большой и крупный

Последний раз редактировалось VikDuBBer, 14.04.2017 в 09:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
часики на js Margarita Ваши сайты и скрипты 1 04.11.2012 22:02
Часики на JS eirnvn Общие вопросы Javascript 0 10.10.2012 02:21
Часики для сайта embiop Работа 1 09.10.2012 02:07
Написал часики для обратного отсчета. Подскажите где слажал t0xas Общие вопросы Javascript 14 26.09.2010 18:22