Вот что я хочу сделать.Функция запуска в течение 30 минут
- Выполнение функции: один раз, в определенное время суток.
- Функция работает 30 минут.
Я попытался SetTimeout, но это не соответствует моим требованиям, потому что запустить функцию после X milisecond. В то время как мне нужна функция для выполнения сразу, в нужное время в течение 30 минут. Код прилагается.
var d = new Date();
var hour = d.getHours();
var minute = d.getMinutes();
var day = self.getDate();
var month_name=new Array(12);
month_name[0]="January"
month_name[1]="February"
month_name[2]="March"
month_name[3]="April"
month_name[4]="May"
month_name[5]="June"
month_name[6]="July"
month_name[7]="August"
month_name[8]="September"
month_name[9]="October"
month_name[10]="November"
month_name[11]="December"
var month = month_name[self.getMonth()];
var fullDate = month+' '+day+' '+hour+':'+minute;
function someFunction() {}
function closeFunction(){
noticeDiv.css('display', 'block');
mainDiv.css('display', 'none');
}
function executeFunction(targetDate){
if (fullDate == targetDate){
setTimeout (closeFunction(), 180000);
}else{
someFunction();
}
}
executeFunction(targetDate);
Вы хотите прервать функцию через 30 минут? Невозможно сделать это извне функции. Вам нужно будет выполнить эту проверку внутри самой функции. Обратите внимание, что в зависимости от вашей платформы выполнения вы можете столкнуться с ограничениями длины выполнения. Многие браузеры предлагают убивать скрипты, которые работают в течение длительных периодов времени. Что касается задержки, если миллисекундный счет вызывает целочисленное переполнение, просто сложите его до максимально возможного таймаута и цикла до тех пор, пока время не станет правильным. – Unsigned
Функция, которая занимает 30 минут для запуска? – Bergi