Почему оно увеличивается с каждым разом? - PullRequest
0 голосов
/ 19 апреля 2011

Я хочу понять, почему число timer постоянно увеличивается, когда оно используется.

Должен ли он начинаться с нового номера каждый раз?

А почему оно увеличивается на 2 или 4, а не на 1?

$(document).ready(function(){
    endAndStartTimer();
});

var timer;
function endAndStartTimer() {
  window.clearTimeout(timer);
  //var millisecBeforeRedirect = 10000; 
  timer = window.setTimeout(function(){alert('Hello!');},1000); 
  alert(timer);
}

Нужно ли window.clearTimeout (таймер); внутри функции? Что было бы неправильно, если бы я

Вы можете попробовать это здесь .

Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Метод возвращает уникальный идентификатор таймера.Единственная цель - дать вам дескриптор, чтобы использовать его с clearTimeout.Вы не можете контролировать, какой идентификатор генерируется.

0 голосов
/ 19 апреля 2011

Несколько простых фактов

  1. Вам не нужно звонить clearTimeout перед установкой. По крайней мере, в указанном вами коде.

  2. Когда я запускаю ваш JSFiddle в FF4, он всегда сообщает 2

  3. Идентификаторы таймера генерируются движком Javascript, реализованным в браузере, поэтому вы не можете контролировать его. Все, что он возвращает, является ценностью, которую вы должны использовать, чтобы очистить его. Я не проверял это, но вполне возможно, что эти генераторы идентификаторов реализованы по-другому. Хотя самый простой (= самый быстрый) способ - просто увеличить идентификатор последнего идентификатора таймера.

...