| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Прервать коннект Ajax |
| Автор: Aco 28.2.2008, 10:10 |
| Есть необходимость прервать коннект Ajax к серверу при обновлении или при переходе на этот же скрипт с другими параметрами. Ибо сервер не желает отвечать пока не обработает Ajax. Гугл умеет как-то убивать коннект, в его коде так и не нашёл как именно. Есть идеи? |
| Автор: Aco 28.2.2008, 11:31 |
| Поясню ситуацию. Скрипт через аякс обращяется к серверу, сервер обрабатывает запрос ~30 секунд или более. И если перейти на любой скрипт этого домена то браузер виснет, ожидая ответа от сервера, а сервер отвечает только когда обработал аякс запрос. Пробывал и .abort() у аякс, и с настройками php.ini "играл", вчастности ignore_user_abort и тп. Что это за глюк и как с ним бороться? |
| Автор: Aco 28.2.2008, 12:35 | ||
Сервер апач+пхп. Дело в том что гуголовский js-фреймворк на том же сервере спокойно завершает соединение в любой момент (можно видеть фаербагом) и при обновлении и при переходе куда-нибудь ничего не виснет => должно же быть решение... |
| Автор: Sardar 28.2.2008, 13:19 | ||
Дай ссылку, т.к. сценка что ты описал не возможна. Браузер убьёт любое ещё открытое соединение если закрыть окно или перейти на другой адрес. Перешли на другую страницу, твой XMLHttpRequest может не повиснуть, а просто ждать ответа на запрос, всё остальное должно продолжать работать (это к теме о "повиснуть"). Сервер должен завершить предыдущий запрос как только оборвётся соединение (если не отключить это дело, к примеру ignore_user_abort() в PHP). Даже если он этого не сделает, то должен запустить новый тред, что бы обработать ajax запрос со второй страницы. Отсюда ясно, что никто на этом пути вызвать "зависание" не может. Вывод: дай ссылку, по дебажим. |