Javascript.RU

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

Текст в определенное время
Доброго времени суток!
Помогите, не получается.
Как сделать, что бы текст появлялся в определенное время, например в 12:05 или 18:32.
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2014, 03:32
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Попробуй так:


div=document.getElementById("id")
setInterval(function(){var time=new Date().getHours(); if((time>2)&&(time<4)) return div.style.display="block"; div.style.display="none"}, 5000)

Не самый эффективный вариант, наверное, зато простой.

Последний раз редактировалось newobject, 16.07.2014 в 03:37.
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2014, 08:14
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Таймер, установленный по setInterval (и по setTimeout тоже), неточен, а при переключении на иную вкладку некоторые браузеры так и вовсе его затормаживают. Вот демонстрация с учебника местного:
<div id="timer-interval-log"></div>
<p><button onclick="timerIntervalLog()">Запустить повтор с интервалом в 90 мс</button><br /><button onclick="clearInterval(timerIntervalLogTimer)">Остановить повтор</button></p>
<script>
var timerIntervalLogTimer;
function timerIntervalLog() {
  var arr = [];
  var d = new Date;
  timerIntervalLogTimer = setInterval(function() {
    var diff = new Date - d;
    if (diff > 100) diff = '<span style="color:red">'+diff+'</span>';
    arr.push( diff );
    if (arr.length > 25) arr.shift();
    document.getElementById('timer-interval-log').innerHTML = arr;
    d = new Date;
  }, 90);
}
</script>

То есть, надо либо проводить калибровку каждую определенную итерацию и при переключении пользователя на страницу (window.onfocus), либо тикать таймер на сервере, и через long-polling подавать сигнал странице, что уже пора чо там делать.
Ответить с цитированием
  #4 (permalink)  
Старый 16.07.2014, 09:10
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Erolast,
А зачем там точность до 300ms? Это идиотизм, такие промежутки ловить. Выстави хотя бы 1000, и все нормально работает.
Ответить с цитированием
  #5 (permalink)  
Старый 16.07.2014, 10:55
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Тут значимо не столько частое отклонение таймера на миллисекунду, сколько затормаживание при потере страницей фокуса.
Ответить с цитированием
  #6 (permalink)  
Старый 16.07.2014, 11:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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

никаких setInterval или повторных вычислений. и на форуме такого 100500

Последний раз редактировалось рони, 16.07.2014 в 11:59.
Ответить с цитированием
  #7 (permalink)  
Старый 16.07.2014, 14:26
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Собьется при переключении вкладки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
Position fixed, но динамический по оси ОХ tvixa Элементы интерфейса 4 09.09.2013 15:39
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03