Метод xmlHttpRequest abort () не закрывает соединение в Internet Explorer - PullRequest
5 голосов
/ 04 марта 2010

У меня есть несколько xmlHttpRequest на моей странице, и я пытаюсь вызвать метод abort() для них всех. Прекрасно работает в FF. IE, с другой стороны, не делает чертову вещь. Соединения не закрываются, и я не могу перейти на другую страницу, пока не будут выполнены запросы. Что это? Почему IE не закрывает соединения при вызове abort()?

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

Я почти никогда не прерывал работу в IE. Я устал и не могу вспомнить почему - что-то из-за невозможности прервать, пока вы не будете в readyState 4 (или, может быть, он изменился на readyState 4, когда прервет работу?). В любом случае, Ajaxian работает в глубине своих архивов:

http://ajaxian.com/archives/reusing-xmlhttprequest-without-abort

0 голосов
/ 30 января 2013

Параллельно-Ajax-запросы против блокировки Apache-Session


Данные сеанса обычно сохраняются после ваш сценарий завершен , но, поскольку данные сеанса заблокированы, чтобы предотвратить одновременную запись только один сценарий может работать с сеансом в любое время .

Когда, например, используя наборы кадров вместе с сеансами, вы будете испытывать загрузку кадров один за другим из-за этой блокировки. Вы можете сократить время, необходимое для загрузки всех кадров , завершив сеанс как можно скорее .


Так что вы можете использовать сессии в ajax-скриптах с session_start(); (возможно, обрабатывается автоматически), за которым следует (как можно скорее) session_write_close();

session_write_close(); завершит текущий сеанс и сохранит данные сеанса.

Но: session_id() будет по-прежнему доставлять правильный (текущий) PHPSESSID, поэтому вы сможете снова получить доступ для записи в текущий сеанс, просто выполнив session_start() снова в любое время, когда вам это нужно. .


Я использую его таким образом во всех моих сценариях ajax для реализации обработки сессий и , разрешающей параллельный запрос (с прерыванием) во всех браузерах

...