Как смоделировать время ожидания запроса ajax в браузере? - PullRequest
2 голосов
/ 28 марта 2012

Я пытаюсь защитить свое веб-приложение от тайм-аутов запросов ajax. Для этого мне, очевидно, нужно смоделировать такой тайм-аут.

Из того, что я нашел здесь: http://kb.mozillazine.org/Network.http.connect.timeout#Background Тайм-аут Firefox зависит от системы и из того, что я нашел здесь: http://support.microsoft.com/kb/181050 период ожидания IE по умолчанию составляет 60 минут.

Итак, я вижу следующие способы симуляции тайм-аута:

  • заставляет сервер ждать 60 минут (чёрт;))
  • изменить период ожидания IE на меньшее значение (что требует изменений в реестре)
  • настроить прокси между клиентом и сервером и установить таймаут

Все вышеперечисленные способы кажутся мне излишним. Кто-нибудь знает более простой способ (возможно, в другом браузере)? Спасибо!

Ответы [ 4 ]

10 голосов
/ 02 марта 2013

Не было бы намного проще просто установить время ожидания ajax равным 1 миллисекунде. Даже на localhost он всегда будет иметь тайм-аут при этом значении. Это метод, который я всегда использую. Единственное, что вы не используете при таком подходе, - это фактическое «ощущение», которое дает предпочитаемый вами период ожидания для конечного пользователя (т. Е. Чувствует ли он 3 секунды долго, слишком мало 2 секунды). Но если вы просто хотите применить код под ответом об ошибке, это поможет мне.

1 голос
/ 29 марта 2012

В конечном итоге самым простым способом для меня было смоделировать время ожидания, установив значение ReceiveTimeout в реестре HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Internet Settings как описано здесь:

http://support.microsoft.com/kb/181050

Решение Даршана тоже может сработать, но я только что проверил вышеизложенное. Спасибо всем за помощь!

1 голос
/ 28 марта 2012

какой вред в настройке KeepAliveTimeout в реестре HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ InternetSettings?

Более подробную информацию можно найти здесь:
http://support.microsoft.com/kb/181050

0 голосов
/ 27 апреля 2017

Все просто, установите время ожидания на 10.

как это: xhr.timeout = 10;

...