На одной странице моего сайта созданы таймеры. Мне нужно иметь доступ к этим таймерам на других страницах, чтобы увидеть оставшееся время. Но я не могу заставить глобальный массив работать должным образом.
В заголовке сайта я создаю массив all_timers, если он пуст. Затем в моей функции таймера я помещаю идентификатор таймера в этот массив. Но когда я перезагружаю страницу, массив всегда пуст.
Когда страница таймеров запускается, консоль показывает «нажата». Но всякий раз, когда страница обновляется, она показывает «создать новый».
Я смущен использованием окна. В некоторых сообщениях говорится, что он используется, в некоторых это не упоминается, а в некоторых показано, что он используется для всех экземпляров переменной, а не только для ее создания. Sp я создаю глобально неправильно? Я просто показываю основное использование здесь, хотя я попробовал много вариантов. Кто-нибудь, пожалуйста, укажите, что мне не хватает? Обратите внимание, что это сокращенный код. Функция таймера действительно вызывается.
<head>
<script>
if (typeof all_timers !== 'undefined' && all_timers.length > 0) {
console.log('found '+all_timers.length);
for (var i = 0; i < all_timers.length; i++) {
console.log('main timer '+all_timers[i]);
}
} else {
console.log('create new');
window.all_timers = new Array();
}
</script>
</head>
<body>
<script>
function createfunc(idx) {
if ($("#time-left-"+idx).length === 0) {
clearInterval(timerID[idx]);
} else {
timerID[idx] = setInterval(function() {
if (show_timer > 0) {
all_timers.push('some thing'+idx);
console.log('pushed');
} else {
clearInterval(timerID[idx]);
}
}, 1000);
}
}
</script>
</body>