|
Модераторы: Sardar, Aliance |
|
Su_ |
|
||||
Опытный Профиль Группа: Участник Сообщений: 386 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Всем привет!
Вопрос в том как прервать ajax запрос при помощи библиотеки jquery. Ситуасия следующая: я посылаю запрос на сервер:
Он выполняется 15 секнуд, в этот период я посылаю второй запрос, перед этим сделав:
Срабатывает error: и выводиться alert("aborted"); В консоли chrome видно что 1 запрос был отменен, и сейчас выполняется 2 . Но по факту пока не выполниться 1 запрос (даже отмененный) , не начнется выполняться второй . В чем я ошибаюсь? Это сообщение отредактировал(а) Su_ - 13.2.2012, 20:23 |
||||
|
|||||
Su_ |
|
|||
Опытный Профиль Группа: Участник Сообщений: 386 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
по логике , первый запрос вызывает загрузку файла xml , соответвенно занимает канал.Может нужно на сервер послать еще запрос с отменой загрузки?
|
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
По идее, если не установлен флаг ignore_user_abort(), то abort обязан прерывать текущую операцию на сервере. Правда, если в это время выполняется длинный MySl запрос, то прервется выполнение только после его выполнения. Если файл выдается чем-то вроде readfile, то тоже никакой остановки выполнения не получится...
Если запрос выполняется "управляемо", не с помощью readfile, а мелкими порциями, выдаваемыми echo, то можно ajax'ом послать на сервер флажок, по которому прекратить передачу файла. Не имея кода и настроек сервера можно долго гадать о причинах... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
Su_ |
|
||||
Опытный Профиль Группа: Участник Сообщений: 386 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Спасибо за ответ.
Ну меня дольше всего работает simplexml_load_file и как я понял его прервать никак нельзя. Как я почитал можно все то же самое реализовать через curl и у него уже вызвать через флаг метод close()/
Код минимальный, на клиенте вызов php метода с одной строчкой simplexml_load_file. Сервер apache дефолтовых настроек. тут интересен сам механизм работы с долгими ajax запросами. Может логичнее не обрывать запрос а понизить его приоритет в канале , и по завершению вывести фоном.Возможно ли это) |
||||
|
|||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Su_, Немного подозрительно звучит то, что
Картинка напоминает блокировку скрипта сессиями. Можно перед вызовом simplexml_load_file вызвать session_write_close()/ По идее, даже если скрипт не прекратил выполняться, никто не мешает еще раз обратиться к серверу. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |