Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2011, 11:40
Новичок на форуме
Отправить личное сообщение для zeleniy Посмотреть профиль Найти все сообщения от zeleniy
 
Регистрация: 18.04.2011
Сообщений: 4

Непонятки с областью видимости переменной
Есть вот такой код, на jQuery:
function loadModelList(vendor_id) {

    var model;
    $.post("/search/get_models", {vendor_id: vendor_id}, function(data) {
        $(data).each(function() {

            if (params_array['model'] != undefined && params_array['model'] == this.id) {
                model = this.model_name;
            }
        });
    }, 'json');

    alert(model);
}

В самой глубине этого кода должна инициализироваться пременная model. Однако ничего подобного не происходит и её значение так и остаётся undefined. Почему ?? И как сделать так, чтобы я мог получить то что мне надо во внешней области видимости ?
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2011, 12:29
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Использовать синхронный запрос.
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2011, 12:46
Новичок на форуме
Отправить личное сообщение для zeleniy Посмотреть профиль Найти все сообщения от zeleniy
 
Регистрация: 18.04.2011
Сообщений: 4

Что значит синхронный ? И почему переменная то не инициализируется ?
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2011, 13:13
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Она инициализируется, но позже.
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2011, 13:24
Новичок на форуме
Отправить личное сообщение для zeleniy Посмотреть профиль Найти все сообщения от zeleniy
 
Регистрация: 18.04.2011
Сообщений: 4

А почему позже ? Разве асинхронность запроса влияет на порядок выполнения js-кода ? Запрос то может быть и асинхронный (хотя это всего лишь название, никакого смысла в этой асинхронности кажется нет, кроме того, что текущая страница браузера не перегружается), но код то последовательно должен выполняться..?
Ответить с цитированием
  #6 (permalink)  
Старый 18.04.2011, 13:39
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

zeleniy, alert вызывается сразу, а переменной присваивается значение после запроса.
Ответить с цитированием
  #7 (permalink)  
Старый 18.04.2011, 13:53
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от zeleniy
хотя это всего лишь название, никакого смысла в этой асинхронности кажется нет, кроме того, что текущая страница браузера не перегружается
Вам не правильно кажется.
Ответить с цитированием
  #8 (permalink)  
Старый 18.04.2011, 16:08
Новичок на форуме
Отправить личное сообщение для zeleniy Посмотреть профиль Найти все сообщения от zeleniy
 
Регистрация: 18.04.2011
Сообщений: 4

Да, сделал запрос синхронным и всё заработало. Почитал про синхронность/асинхронность http://xmlhttprequest.ru/#use. Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вернуть имя переменной Йакуд Общие вопросы Javascript 21 18.05.2014 10:10
Изменение и отображение значения переменной по клику Allan Stark Общие вопросы Javascript 1 25.04.2010 15:50
Область видимости переменной. noumo Events/DOM/Window 3 03.12.2009 23:48
ключи в ассоциативной переменной afandi Общие вопросы Javascript 4 05.02.2009 15:58
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25