Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прервать ajax запрос? 
V
    Опции темы
imm
Дата 7.2.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 27.7.2005

Репутация: нет
Всего: 1



Работаю на jQuery.

Есть объект окно которое по закрытию удаляет сове содержимое, а по открытию грузит его по ajax.

Ситуация такая:

Открываем окно отправляется ajax запрос, не дожидаясь ответа окно закрываем и открываем снова (только грузя другую страницу).
И теперь два success будут бороться за содержимое окна.

Вопрос:

Как прервать ajax запрос?
PM MAIL WWW ICQ   Вверх
solenko
Дата 7.2.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



А зачем его прерывать? Создавайте окно с уникальным идентификатором и работайте с ним. Нет окна == обработчик ничего не делает.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 7.2.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



imm, Что такое окно? Если отдельное окно броузера, то вопрос непонятен совершенно smile

Добавлено через 13 минут и 55 секунд
В принципе, у обычного xmlHttpRequest'а есть метод abort. Однако, для jQuery добраться до этого объекта непросто. Можно поставить callback с помощью ajaxSend. Одним из параметров этого запроса будет тот самый объект. Нужно сохранить объект и кильнуть его в нужный момент. Правда как отреагирует jQuery'вский ajax на такое обращение - не могу пока себе представить...  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Kyrt_God
Дата 7.2.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



зачем вообще такие танцы с окном.И вообще попапы это зло и некрасиво - юзайте модальные окна.

Это сообщение отредактировал(а) Kyrt_God - 7.2.2009, 20:38
PM MAIL   Вверх
IDVsbruck
Дата 9.2.2009, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 4
Всего: 22



Что-то я тоже не понял вопроса. Если окно закрыто, то объект XmlHttpRequest удален. Кто и как может вызвать success удаленного объекта?
PM MAIL   Вверх
imm
Дата 9.2.2009, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 27.7.2005

Репутация: нет
Всего: 1



Извиняюсь, выходные были.

Цитата(ksnk @  7.2.2009,  11:30 Найти цитируемый пост)
imm, Что такое окно? Если отдельное окно броузера, то вопрос непонятен совершенно


Окно в моем - это <div> с навешанным на него draggable. И в этот див грузится все что мне нужно.


Цитата(solenko @  7.2.2009,  11:24 Найти цитируемый пост)
А зачем его прерывать? Создавайте окно с уникальным идентификатором и работайте с ним. Нет окна == обработчик ничего не делает. 


То да, но сейчас мне нужны только модальные окна и объект окна у меня один на всех, потому и стал такой вопрос. Но раз простым и незамудренным способом прервать запрос низя, то пусть он и не прерывается, сроки уже поджимают потому придумаю какую-нибудь страшную фразу и страшилку на тему не закрывайте окна пока оно не загрузится ибо mustdie и все будет ок.  smile  smile  smile 



PM MAIL WWW ICQ   Вверх
maroccanez
Дата 14.2.2009, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.2.2009

Репутация: нет
Всего: нет



А что разве нет информации в нете, по учебникам должно быть.
PM MAIL WWW   Вверх
bars80080
Дата 14.2.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



а что значит прервать запрос? сам запрос ушёл в сеть, всё, на этом точка. обработчик сидит и ждёт когда придёт ответ, чтобы совершить некое действие. вот вызов этого действия и можно остановить. достаточно ввести переменную, а на вызов добавить проверку этой переменной: (perem == false, если мы не хотим выполнения)

Код

req.onreadystatechange = function() { 
        if(req.readyState == 4 && perem) ajax_o(req.responseText); }

PM MAIL WWW   Вверх
ksnk
Дата 15.2.2009, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



bars80080
Цитата

 обработчик сидит и ждёт когда придёт ответ...

и сервер сидит и лихорадочно сочиняет этот самый ответ. Вот это как раз и можно остановить операцией abort, о которой я писал выше...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 15.2.2009, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



Цитата(ksnk @  14.2.2009,  23:17 Найти цитируемый пост)
Вот это как раз и можно остановить операцией abort, о которой я писал выше... 

а что, это остановит сервер?
PM MAIL WWW   Вверх
ksnk
Дата 15.2.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



bars80080, Дык, кто-то же придумал параметр ignore_user_abort в настройках php.ini, значит это кому-то нужно ;-)


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 16.2.2009, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



Цитата(ksnk @  15.2.2009,  12:37 Найти цитируемый пост)
кто-то же придумал параметр ignore_user_abort в настройках php.ini, значит это кому-то нужно 

даааа? всю жизнь считал, что сервер не видит никакой связи между двумя запросами
чем же он отслеживает? куками что ли?
PM MAIL WWW   Вверх
ksnk
Дата 16.2.2009, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



bars80080, Ну, запрос-же один. открывается соединение, пока оно стоит - считается,что на той стороне его кто-то ждет. Cделали abort - TCP соединение прервалось - серверу можно пойти покурить smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 16.2.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



мммм, вот он значит какой аякс. а я ничего и не подозревал...
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0869 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.