Вход

Просмотр полной версии : Запуск и остановка скрипта по глобальному времени


politik86
04.04.2014, 12:54
Всем добрый день! Кто подскажет - имеем некую функцию конкретно мигание елемента:


var newTxt="New text!!!";
var oldTxt=document.title;
function migalka(){
if(document.title==oldTxt){
document.title=newTxt;
}else{
document.title=oldTxt;
}
}


var timer = setInterval(migalka,800);



Как запускать ее по расписанию да еще и на конкретный промежуток времени (тоесть запуск функции каждый час - в 12.00, 13.00, и т.д ) с временем работы к примеру на 30 секунд (тоесть остановка работы скрипта в 12.00 30 сек, в 13.00 30 сек и т.д.)

VBeregovoy
11.04.2014, 11:32
setTimeout(function(){
var d = new Date(); // current time
var mins = d.getMinutes();
if(mins == '00') {
migalka();
}
}, 60000);


Каждых 60 секунд снимаем время - если время 00 - выполняем функцию migalka()

Sweet
11.04.2014, 11:50
setTimeout
Каждых 60 секунд
Советы на javascript.ru - всегда качественные и профессиональные!
mins == '00'
Я конечно понимаю, что js с динамической типизацией, но зачем крутить пистолет на пальце, а потом удивляться, что прострелил себе колено?
alert( typeof (new Date).getMinutes() );
Нахер так жить?

politik86
11.04.2014, 12:11
Каждых 60 секунд снимаем время - если время 00 - выполняем функцию migalka()


Спасибо получилось - функция запускаеться

Sweet
11.04.2014, 12:18
(function () {
var timerId = null;
var originTitle = document.title;
var message = "New text!!!";

var date = new Date;
date.setMinutes(0);
date.setHours(date.getHours() + 1);
// date - это ближайшее время, когда 00 минут (ну ты понел)

setTimeout(timer, date - new Date);


function timer() {
setTimeout(timer, 3600000); // 3600000 == 60 * 60 * 1000 - 1 час

startNotify();
setTimeout(stopNotify, 30000);
}

function startNotify() {
timerId = setInterval(notify, 800);
}

function stopNotify() {
clearInterval(timerId);
}

function notify() {
document.title = document.title == originTitle ? message : originTitle;
}
} ());Код не проверял - лениво было. А запускать проверку каждую секунду - это говнологика.