т.е. сохранить ошибку при загрузке - PullRequest
0 голосов
/ 08 марта 2009

У меня динамическое приложение ajaxy, и я сохраняю состояние, когда пользователь закрывает окно проводника. Это работает нормально во всех браузерах, но в IE есть проблема. После того, как я дважды закрыл вкладку приложения, я больше не могу подключиться к серверу.

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

Кто-нибудь сталкивался с этим, любое решение или решение?

Ответы [ 2 ]

1 голос
/ 12 мая 2010

В IE, если вы используете AJAX-запрос с длинным опросом, вы должны закрыть XHR-соединение при 'выгрузке'. В противном случае он будет поддерживаться браузером, даже если вы уходите с вашего сайта. Эти поддерживаемые соединения будут вызывать зависание, потому что ваш браузер достигнет максимально открытого предела соединения.

Эта проблема не возникает в других браузерах.

0 голосов
/ 08 марта 2009

Ну, вы можете легко обойти ограничение соединения; просто создайте домен с подстановочными знаками и проинструктируйте свое приложение для циклического разбора поддоменов; например a.rsrc.dmvnoc.com, b.rsrc.dmvnoc.com и т. д. для моего приложения netMail . Без этого трюка предварительная загрузка всех изображений занимает почти 30 секунд в локальной сети (из-за низкого предела подключения MSIE), но при этом изображения загружаются примерно за секунду.

Если вам нужно объединить сценарии с этим трюком, просто установите document.domain для родителя в новых сценариях.

Тем не менее, вы, возможно, захотите проверить состояние изменений в любом случае - пользователь может потерять свое сетевое соединение, или его компьютер может дать сбой. Если вы хотите уменьшить сетевой трафик, попросите клиента просто установить cookie, который содержит соответствующее состояние - вы можете разместить там очень много (3000 байт или около того), а затем сервер автоматически получит его при следующем соединении - где бы он может сохранить результаты (как это происходит в настоящее время) и удалить cookie, чтобы сигнализировать, что он сохранил состояние.

...