Простой alert внутри обработчика меняет работоспособность функции.
Hi All!
Начал читать книгу К.Даре и Б.Бринзаре и срезался на первом же примере. есть функция - обработчик XMLHttpRequest::onreadystatechange: function handleServerResponse() { //alert("Handling.."); if (xmlHttp.readyState==4) { if (xmlHttp.status==200) { xmlResponse=xmlHttp.responseXML; xmlDocumentElement=xmlResponse.documentElement; hellomessage = xmlDocumentElement.firstChild.data; document.getElementById("divMessage").innerHTML = '<i>'+hellomessage+'<i>'; setTimeout('process()',1000); } else { alert('Нет ответа от сервера'+xmlHttp.statusText); } } } Так вот, если я оставлю алерт в начале функции - все работает как задумано - с определенной периодичностью обработчик запускается снова и снова. Как только алерт убираю - все, функция работает только один раз. Подскажите, куда смотреть, как ловить? Андрей. |
Когда алерт стоит вначале, сколько раз он показывается? 4?)
|
Перепроверил еще раз:
Если алерт стоит, - firefox показывает его в цикле (бесконечном) как задумано (надписи меняет) - chrome не запускает функцию ни разу Если алерт убрать, - firefox и chrome не запускают функцию ни разу (нет обновления надписи) Вот вызывающая обработчик функция из примера: function process() { if (xmlHttp.readyState==4 || xmlHttp.readyState==0) { name=encodeURIComponent(document.getElementById(|m yName").value); xmlHttp.open("GET", "quickstart.php?name="+name, true); xmlHttp.onreadystatechange=handleServerResponse(); xmlHttp.send(null); //пробовал менять местами со строчкой выше - результата нет } else { setTimeout("process()",1000); } }//func |
Часовой пояс GMT +3, время: 03:52. |