Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2010, 22:21
Аватар для HelpeR
Профессор
Отправить личное сообщение для HelpeR Посмотреть профиль Найти все сообщения от HelpeR
 
Регистрация: 21.10.2008
Сообщений: 241

отмена запроса
if(request == null) {
    request = initXMLHttp();
}
else if(request.readyState != 4) {
    request.abort();
    //тут open and send	
}

Правильно ли я подошел к следующей задаче.
Имеется выпадающий список стран. При выборе страны должен формировать список городов. Во время выполнения запроса будет показываться лоадер. И если например пользователь по ошибке выбрал одну страну и увидев ошибку мгновенно выбрал другую. Для запроса использую глобальную переменную request. Если использовать не глобальную, то после выборки нужной (выбранной по счету второй страны) в списке городов может оказаться и города первой страны. Т.е. правильно ли я подошел к этому моменту. Если сразу как бы делается два запроса, то отменяется первый и начинается выполнение второго?
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2010, 15:22
Аспирант
Отправить личное сообщение для sergdev Посмотреть профиль Найти все сообщения от sergdev
 
Регистрация: 08.12.2009
Сообщений: 32

Это зависит имхо от бизнес логики, которую попросил заказчик. Обычно ставят флажок в js и блокируют некий функционал до тех пор пока не закончится выполняться некое действие. Можно временно блок со списком стран прятать(прозрачность для этого блока поменять ? типа в тень вогнать) и показывать типа что я щас работаю
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2010, 21:02
Аватар для HelpeR
Профессор
Отправить личное сообщение для HelpeR Посмотреть профиль Найти все сообщения от HelpeR
 
Регистрация: 21.10.2008
Сообщений: 241

Нет мне не нужно выполнять задачу каким либо другим способом, а именно таким. Поэтому и прошу выразить свое мнение специалистов.
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2010, 07:36
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от HelpeR
Если использовать не глобальную, то после выборки нужной (выбранной по счету второй страны) в списке городов может оказаться и города первой страны
не глобальную по прежнему можно использовать, примерно так:

var input = $('myInput');
input.xhr = reqCitys();// здесь запоминаем запрос

// если пользователь выбрал другую страну
// отменяем запрос
input.xhr.abort();
// и сохраняем новый
input.xhr = reqCitys();


Еще при выборе полезно сделать задержку перед запросом (в некоторых браузерах инпут можно колесиком крутить - много запросов будет, abort отменяет прием запроса, но если запрос уже ушел, то сервером будет обработан), но лоадер показывать сразу.
Ответить с цитированием
  #5 (permalink)  
Старый 16.02.2010, 16:16
Аватар для HelpeR
Профессор
Отправить личное сообщение для HelpeR Посмотреть профиль Найти все сообщения от HelpeR
 
Регистрация: 21.10.2008
Сообщений: 241

sergdev, Если блокировать список стран, то пока не будут выведены города, то это думаю будет раздражать пользователя, если он выберет ошибочную страну. И это работа не по заказу. Поэтому я конкретно описал задачу и свой подход к ней и попросил выразить свое мнение к моему подходу, а не показывать другое решение.
Ответить с цитированием
  #6 (permalink)  
Старый 16.02.2010, 16:24
Аспирант
Отправить личное сообщение для sergdev Посмотреть профиль Найти все сообщения от sergdev
 
Регистрация: 08.12.2009
Сообщений: 32

Сообщение от HelpeR Посмотреть сообщение
sergdev, Если блокировать список стран, то пока не будут выведены города, то это думаю будет раздражать пользователя, если он выберет ошибочную страну. И это работа не по заказу. Поэтому я конкретно описал задачу и свой подход к ней и попросил выразить свое мнение к моему подходу, а не показывать другое решение.
Да,вы правы, перечитал еще раз.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что происходит с символами во время выполнения запроса? Yazla Общие вопросы Javascript 4 11.12.2009 17:09
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23
Выполнение javascript из строки запроса браузера Freund Javascript под браузер 2 08.09.2009 07:25
Как "подождать" выполнение асинхронного запроса? WalterScott AJAX и COMET 25 05.06.2009 12:18
Какая кодировка строки запроса у Рамблера? greatilya Серверные языки и технологии 9 23.03.2009 13:22