Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > JavaScript + websocket + отмена запроса


Автор: chiffa 2.12.2013, 12:22
Всем добрый день. Я отправляю через WebSocket запрос на сервер, если он висит слишком долго, как можно юзеру дать возможность отменить его? Буду признателен за помощь!

Автор: CruorVult 3.12.2013, 12:05
Что вы подразумеваете под словом "отменить" в контексте клиента?

Автор: chiffa 3.12.2013, 12:47
Клиент отправил запрос и ждем ответа от сервера. По результат ответа выполняет какие то действия.
Ответ от севрера летит долго (либо же сама отправка идет долго) и юзер передумал ждать он нажимает на кнопку отмена данное дествие не будет выполнено на строне клиента.

Пока писал пришла идея: создавать переменную а-ля user_stop и при нажатии на кнопку отмена присваивать ей user_stop = true. Далее при проверке ответа от сервера делать доп. проверку на данную переменную. 

 Но может есть более элегантное решение?...

Автор: CruorVult 3.12.2013, 13:15
А зачем вообще заставлять пользователя ждать? Они этого не любят.
Пусть операция себе выполняется асинхронно и не мешает дальше продолжать работу. 

Автор: Bulat 3.12.2013, 14:25
chiffa, просто игнорируй ответ и все. Если у тебя запрос уже ушел на сервер, то чисто на стороне клиента ты его никак не отменишь.

Автор: chiffa 3.12.2013, 15:12
ну да... впринципе как и думал... Спасибо! smile 

Автор: ksnk 3.12.2013, 15:24
Цитата(Bulat @  3.12.2013,  14:25 Найти цитируемый пост)
то чисто на стороне клиента ты его никак не отменишь. 

у объекта WebSocket есть метод close. Это не оно?

Автор: Bulat 4.12.2013, 07:44
Цитата(ksnk @  3.12.2013,  15:24 Найти цитируемый пост)
у объекта WebSocket есть метод close. Это не оно?

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)