Можно ли для периодических ajax-запросов использовать один объект XMLHttpRequest?

var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
var ping = function () {
    request.open('GET', '/ping', true);
    request.send();
};

setInterval(ping, 1000);

Есть ли какие-то подводные камни у такого кода? Я никаких проблем не заметил, но это, конечно, не значит, что их нет.
Цель - не создавать новый объект каждую секунду, а использовать один. Экономия на спичках, конечно, больше ради спортивного интереса.
Обрабатывать ответ сервера не нужно, так что readystatechange мы не слушаем.
  • Вопрос задан
  • 829 просмотров
Решения вопроса 1
delef
@delef
Разработчик (Crystal, Python, Ruby, PHP, JS)
Повторное использование объекта XmlHttpRequest:
В Internet Explorer, если open() вызван после установки onreadystatechange, может быть проблема с повторным использованием этого XmlHttpRequest.
Чтобы использовать заново XmlHttpRequest, сначала вызывайте метод open(), а затем - присваивайте onreadystatechange. Это нужно из-за того, что IE самостоятельно очищает объект XmlHttpRequest в методе open(), если его статус "completed".
Вызывать abort() для перенаправления запроса на другой URL не нужно, даже если текущий запрос еще не завершился.

На скорую руку только для ослика инфу нашел
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы