Хорошо, но это можно сделать как комментарий вместо ответа
ер Firefox 3.0.10. Я запрашиваю страницу, используя Ajax. Ответ в процессе может быть в ReadyState менее 4. Тем временем я пытаюсь перезагрузить страницу. Запрос заканчивается, давая пустой ответ.
Я использовал оповещение, чтобы найти, какая строка была дана в качестве текста ответа. Я предполагаю, что к этому времени состояние готовности 4 достигнуто. Почему это пустая строка?
Когда я предупреждаю xmlhttpobject.status, он отображает 0.
Когда я предупреждаю xmlhttpobject.statusText, возникает исключение, сообщающее «НЕ ДОСТУПНО».
Когда я читаю в документеhttp://www.devx.com/webdev/Article/33024/0/page/2 сказано 3 и 4status
а такжеstatusText
доступны, но при тестировании доступен только статус, но не satausText.
Вот пример кода.
Считайте, что я запросил страницу, и моя функция обратного вызова выглядит следующим образом
function cb(rt)
{
if(rt.readyState==4)
{
alert(rt.status);
alert(rt.statusText); // which throws an exception
}
}
и мой серверный скрипт выглядит следующим образом
sleep(30);
//flushing little drop down code
Помимо этого я заметил следующее.
Предположим еще раз, что я запрашиваю приведенный выше скрипт, используя Ajax. Теперь будет простоя 30 секунд. Перед этим 30 секунд я нажимаю обновить. Я получил xmlhttpobject.status as, 0, но браузер все еще не перезагружал страницу в течение этих 30 секунд. Зачем?
Когда я обновляю страницу до завершения Ajax-запроса, значение состояния устанавливается равным нулю, а состояние готовности устанавливается равным 4, но страница все еще ожидает завершения ответа от сервера.
Что происходит?
ПРИЧИНА ДЛЯ МЕНЯ, ЧТОБЫ ЛИШАТЬ НЕКОТОРОЕ, КАК ЭТО, КАК СЛЕДУЕТ.
Всякий раз, когда я делаю Ajax-запрос, если процесс завершается успешно, например, вставкой чего-либо или удалением чего-либо, я выскакиваю div, сообщающий, что он успешно обновился, и я перезагружаю страницу. Но если возникает какая-либо ошибка, я не перезагружаю страницу, а просто предупреждаю, что не смог обработать этот запрос.
Если пользователь перезагружает страницу до завершения любого из этих запросов, я получаю пустой ответ, который в моих вычислениях указывает на ошибку сервера. Поэтому я отлаживал ответ Ajax, чтобы отфильтровать, что соединение было прервано, потому что пользователь нажал перезагрузить. Поэтому на этот раз я не хочу отображать «невозможно обработать этот запрос», когда пользователь перезагружает страницу до того, как запрос будет завершен.
Ох ... длинная история. ЭТО ДЛИННОЕ ОПИСАНИЕ, ЧТО Я МОГУ СДЕЛАТЬ ЭКСПЕРТАМИ, ПОНИМАТЬ СОМНЕНИЕ.
Итак, что я хочу от вышеописанного.
Любой тип ответа очистит мой разум. Или я хотел бы сказать все типы ответов.
РЕДАКТИРОВАТЬ: 19 дек. Если я не получу правильного ответа, я удалю этот вопрос и перепишу с примерами. Остальное я приму после экспериментов.
Я создам демонстрационную программу и опубликую здесь ссылку, чтобы я мог понять, с чем я столкнулся. Сегодня 29.de.2010.