Здравствуйте! Есть необходимость работать с двумя экземплярами объекта XMLHttpRequest: один производит рассылку смс по базе данных, другой каждые 2 секунды посылает запрос на количество отправленных на текущий момент сообщений (оно хранится и изменяется в переменной сессии по мере рассылки). Но проблема в том, что второй экземпляр объекта ждёт, пока первый (рассылка) получит данные и завершит работу. Следовательно, счётчик становится бесполезным, т.к. не выполняется параллельно с рассылкой, а только после неё. Вопрос: можно ли обойти это, и как?
Ну не совсем так. xmlhttprequest посылает данные методу класса, который обращается к удалённому серверу, который уже и рассылает смс, возвращая xml-отчёт по каждому сообщению.
hellhammer Могу по вашей архитектуре сказать только одно: каждый инвок XMLHttpRequest - это запрос на сервер. Количество запросов надо по возможности уменьшать - в некоторых браузерах из соображений безопасности на количество AJAX-запросов вообще стоит ограничение. Почему бы не сделать, чтобы вызов запроса, рассылающего ваши письма, и не возвращал бы статистические данные?
Ну с этим тоже есть свои заморочки ) ....... Узнал вот, что проблему можно решить, послав заголовок Connection: close. Посылаю: xmlHttp.setRequestHeader ("Connection", "close"); Однако ничего не меняется. Отлавливаю в firefox'е заголовки и вижу, что этот заголовок оказался просто проигнорирован, там стоит Connection: keep-alive. Поэтому возник другой вопрос... Почему происходит так, что setRequestHeader игнорируется, и что с этим делать?..