Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Select2 и ajax / 6 сообщений из 6, страница 1 из 1
23.11.2015, 16:16
    #39111207
Ne_znayu_python
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select2 и ajax
Есть код такой
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
    function fu (a, b){
       var result = null;
       $.ajax({
            url : "/service/suggest/",
            dataType : "json",
            //async: false,
            data : { 'brand' : a, 'city' : b },
            success : function(data){
                var arr = new Array();
                for (var i = 0; i < data.length; i++)
                {
                    arr.push(data[i].value);
                }
                result = arr;
            },
           error : function(url, data){
               alert('error '+data);
           }
        });
        return result;
    }


    $("#brand").select2({
      placeholder : "Выберите бренд",
      data : fu(1, 0)
    });


    $("#city").select2({
        placeholder : "Выберите город",
        data : fu(0, 1)
    });


Вопрос, почему асинхронно данные не возвращаются в data, а синхронно отрабатывает без проблем. В асинхронном запросе нормально отрабатывает, если сделать алерт, то они покажутся. Но не возвращаются.
...
Рейтинг: 0 / 0
23.11.2015, 16:21
    #39111214
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select2 и ajax
Ne_znayu_pythonпочему асинхронно данные не возвращаются в data, а синхронно отрабатывает без проблем
Дык все дело в асинхронности.
Ты запрос отправил и тут же заканчиваешь работу функции. А данные приходят потом в другом "потоке"...

Ne_znayu_pythonВ асинхронном запросе нормально отрабатывает, если сделать алерт, то они покажутся. Но не возвращаются.
Алерт показывает калбек-функция. Ей ведь все равно в каком "потоке" она запущена...
...
Рейтинг: 0 / 0
23.11.2015, 16:23
    #39111217
Ne_znayu_python
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select2 и ajax
krvsa,

а что сделать? Синхронную работу не вариант, ибо ждать одна функцию окончания другой будет долго, а посетителей много.
...
Рейтинг: 0 / 0
23.11.2015, 16:32
    #39111226
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select2 и ajax
Ne_znayu_pythonа что сделать?
Менять алгоритм...

Засовывать все это
Ne_znayu_python
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
    $("#brand").select2({
      placeholder : "Выберите бренд",
      data : fu(1, 0)
    });
    $("#city").select2({
        placeholder : "Выберите город",
        data : fu(0, 1)
    });



В калбек-функцию. Когда данные придут - тогда и будут выполнены соответствующие преобразования.
...
Рейтинг: 0 / 0
23.11.2015, 16:39
    #39111240
Ne_znayu_python
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select2 и ajax
krvsa, тут наоборот, функция fu вызывается
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
         $("#brand").select2({
          placeholder : "Выберите бренд",
          data : get_data(1, 0)
        });


        $("#city").select2({
            placeholder : "Выберите город",
            data : get_data(0, 1)
        });


Этими штуками. Алгоритм слишком геморно менять, но ты вроде натолкнул меня на мысль одну.
...
Рейтинг: 0 / 0
24.11.2015, 08:20
    #39111630
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select2 и ajax
Ne_znayu_pythonАлгоритм слишком геморно менять
А придется...
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Select2 и ajax / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]