1) Забей на всякие ActiveXObject - они уже давно не актуальны (IE6-7). Соответственно всякие if( http ) - тоже лишние проверки.
2) Происходит косяк тогда, когда клик пришелся в момент предыдущего запроса. То есть таймер мы сбросили, но когда придет ответ от сервера, то выполнится функция onreadystatechange, которая вновь запустит таймер. Решение - объявить http переменную выше, то есть рядом с intervalID. И при переходах на другую страницу помимо clearInterval вызывать http.abort()
3)
Сообщение от pokk
|
clearInterval(intervalID);
clearInterval(intervalID);
|
А че всего два раза? Надо продублировать строку трижды! Так надежнее!
И вобще, почти каждую строку кода надо для надежности дублировать несколько раз!