Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как организовать код? / 25 сообщений из 48, страница 1 из 2
19.01.2018, 21:23
    #39587339
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Леди и джентельмены,

Ести Кенду грид с кучей лукапов-справочников. Их надо загрузить прежде чем рендерить грид. Сейчас гружу их синхронно "async: false", т.к. нужно дождаться конца их загрузки, что есть некомильфо. Как дождаться загрузки всех справочников в асинхронном режиме и потом уж рисовать грид? Ангуляр синхронный режин не поддерживает, т..к. deprecated.

Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
    $.ajax({
        url: "api/Lookups",
        data: { lookupName: "Employees" },
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        async: false,
        success: function (data) {
            employees = data;

        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            console.log(XMLHttpRequest.responseText);
        }
    });

    $.ajax({
        url: "api/Lookups",
        data: { lookupName: "Trucs" },
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        async: false,
        success: function (data) {
            trucs = data;
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            console.log(XMLHttpRequest.responseText);
        }
    });

    $("#gridCheckList").kendoGrid({
        columns: [
            { template: '<a href="\\#!/Checklist/#=Id#">Review</a>', field: "Id", title: "#", width: 80, sortable: false },
            { field: "CheckDate", title: "Date", template: "#=  kendo.toString(kendo.parseDate(CheckDate, 'yyyy-MM-dd'), 'MM/dd/yyyy') #", width: 90 },
            { field: "TruckUnit", title: "Truck", values: trucs, width: 60 },
            { field: "PCCode", title: "Party Chief", values: employees },
            { field: "OdometerReading", title: "Odometer KM" },
            { field: "TotalQuestion", title: "Questions" },
            { field: "AnsweredQuestion", title: "Answered" },
            { field: "NoQuestion", title: "No Aswers" },
            {
                field: "Completed", title: "Completed",
                template:
                "# if (Completed) { #" +
                "<span class='glyphicon glyphicon-star' aria-hidden='true'></span>" +
                "# }" +
                "#" +
                "# if (!Completed) { #" +
                "<span class='glyphicon glyphicon-star-empty' aria-hidden='true'></span>" +
                "# }" +
                "#"

            }
        ],
        autoBind: false,
        pageable: {
            refresh: true,
            pageSizes: true,
            info: true,
            numeric: true,
            previousNext: true
        },
        resizable: true,
        dataSource: {
            type: "webapi",
            transport: {
                idField: "Id",
                read: {
                    url: "api/VehicleCheckLists",
                    dataType: "json"
                }
            },
            pageSize: 10,
            schema: {
                data: "Data",
                total: "Total",
                model: {
                    id: "Id",
                    fields: {
                        Id: { type: "number" },
                        CheckDate: { type: "date" },
                        TruckUnit: { type: "string" },
                        PCCode: { type: "string" },
                        CheckedBy: { type: "string" },
                        OdometerReading: { type: "number" },
                        ASSTCode: { type: "string" },
                        TotalQuestion: { type: "number" },
                        AnsweredQuestion: { type: "number" },
                        NoQuestion: { type: "number" },
                        Completed: { type: "boolean" }
                    }
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                var data = eval("(" + XMLHttpRequest.xhr.responseText + ")");
                toastr.error("Something went wrong (" + data.ExceptionMessage + ")");
                console.log(data.ExceptionMessage);
            }
        },
        editable: false,
        sortable: true,
        filterable: true
    });

...
Рейтинг: 0 / 0
19.01.2018, 21:30
    #39587342
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
В Винде там была функция WaitForMultipleObjects для асинхронщины. А тут каг?
...
Рейтинг: 0 / 0
19.01.2018, 22:41
    #39587357
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic Hunter,
Опять асинхронность ни при чем.
В нормальном гриде в лукап грузится только видимые значения.
Т.е. их меньше чем записей на экране.
Вы бы в js ветке спросили.
...
Рейтинг: 0 / 0
19.01.2018, 22:50
    #39587360
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123Relic Hunter,
Опять асинхронность ни при чем.
В нормальном гриде в лукап грузится только видимые значения.
Т.е. их меньше чем записей на экране.
Вы бы в js ветке спросили.Нифига не понял, что за видимые-невидимые. Но все равно спасибо
...
Рейтинг: 0 / 0
19.01.2018, 22:53
    #39587361
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic Hunter,
Почему долго грузятся справочники, если нужно грузить только их часть. А не все города РФ в лукапе города.
Логично?
Спросить в js ветке тоже не понял?
...
Рейтинг: 0 / 0
19.01.2018, 23:03
    #39587366
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123Relic Hunter,
Почему долго грузятся справочники, если нужно грузить только их часть. А не все города РФ в лукапе города.
Логично?
Спросить в js ветке тоже не понял?

Нет, не логично. Если мне нужно только отобразить, то я их отлукаплю еще на сервере и справочники - не нужны. А если нужно редактирование, то тут уж извините, нужны все значения.
...
Рейтинг: 0 / 0
19.01.2018, 23:12
    #39587368
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic Hunterто тут уж извините, нужны все значения.
нет можно подтянуть при клике на лукапе и переходе в редактирование.
Т.к. событие ГУИ всегда медленнее закачки JSON значений на пару тысяч.
Relic HunterЕсли мне нужно только отобразить, то я их отлукаплю еще на сервере и справочники - не нужны.
да. Это вообще ход конём)
...
Рейтинг: 0 / 0
19.01.2018, 23:14
    #39587369
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic Hunter,
давай цифры по тормозам.
Точно не база тормозит?
...
Рейтинг: 0 / 0
19.01.2018, 23:16
    #39587370
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic Hunter,
Ну и железобетонный вариант - догружай в фоне после открытия страницы. Но у меня сомнения что до этого дойдёт. У вас у одного грид что ли на планете?
...
Рейтинг: 0 / 0
19.01.2018, 23:31
    #39587373
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
вы уверены что правильно модель описали?

Relic Hunter
Код: javascript
1.
 TruckUnit: { type: "string" },


...

Relic Hunter
Код: javascript
1.
  editable: false,


...
...
Рейтинг: 0 / 0
19.01.2018, 23:37
    #39587376
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Што нетак?
...
Рейтинг: 0 / 0
19.01.2018, 23:39
    #39587378
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic HunterШто нетак?
сделай его редактируемым с лукапами.
После этого дай время тормозов.
Удачи!
...
Рейтинг: 0 / 0
19.01.2018, 23:42
    #39587379
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123Relic HunterШто нетак?
сделай его редактируемым с лукапами.
После этого дай время тормозов.
Удачи!У меня нет тормозов и быть не может. Кроме одного на форуме ))

ПС
Вы хоть постановку задачи прочтите.
...
Рейтинг: 0 / 0
19.01.2018, 23:51
    #39587380
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic HunterУ меня нет тормозов и быть не может. Кроме одного на форуме ))
ну вопрос то от тебя не в профильной ветке)
Relic HunterПС
Вы хоть постановку задачи прочтите.
читаю не только постановку.
Ты виляешь тут, что мог бы разлукапить, но тебе нужен редактор.
Значит типа такого
Код: c#
1.
2.
3.
4.
5.
6.
7.
fields: {
                        EmployeeId: { type: "number" },
                        EmployeeLastName: {
                            type: "string",
                            editable: true, 
                            //validation: { required: {message: "Employee's last name is required"}}
                        },


Логично?
И где он?
...
Рейтинг: 0 / 0
20.01.2018, 10:06
    #39587429
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Relic Hunter,

$.ajax возвращает deferred, а с deferred выстроить цепочку не проблема.
...
Рейтинг: 0 / 0
22.01.2018, 00:28
    #39587986
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Вот так будет все асинхронно и все параллельно:

Код: javascript
1.
2.
3.
4.
$.when($.ajax('/dict1'), $.ajax('/dict2'), $.ajax('/dict3'))
      .then(function(dict1, dict2, dict3) {
           .... 
       });
...
Рейтинг: 0 / 0
22.01.2018, 07:33
    #39588035
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
fkthat,
А тут в демке от разраба не асинхронно?
https://demos.telerik.com/kendo-ui/grid/foreignkeycolumn
Думаю что асинхронно, т.к. автор молчит.
...
Рейтинг: 0 / 0
22.01.2018, 08:52
    #39588059
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123fkthat,
А тут в демке от разраба не асинхронно?
https://demos.telerik.com/kendo-ui/grid/foreignkeycolumn
Думаю что асинхронно, т.к. автор молчит.

В душе не знаю - кендо никогда не пользовал. Но, в целом, синхронный вызов аджакса везде считается таким моветоном, что находится почти за гранью приличия.
...
Рейтинг: 0 / 0
22.01.2018, 09:02
    #39588065
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
fkthat,
Ну дак синхронный ТС написал.
Он же не показывал код хелпа.
Я не поленился, и нашел сайт и код от разработчиов.
Раз молчит, значит это его выдумки про тормоза.
...
Рейтинг: 0 / 0
22.01.2018, 12:05
    #39588191
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123,

синхронный он написал, потому как не знает, что такое deferred и как выстроить с ним цепочку.

Выше уже показали, как это сделать при помощи $.when .
...
Рейтинг: 0 / 0
22.01.2018, 12:27
    #39588208
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
skyANA,
Ты тот грид проверял? Тормозит?
Хороший грид уже в демке на сайте разработчика асинхронный.
Нафига мне заниматься его отрисовкой?
А цепочки я и сам знаю.
Вадя, вон тоже с тормозами борется.
Врубился?
...
Рейтинг: 0 / 0
22.01.2018, 12:54
    #39588243
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123,

тебе надо, ты и проверяй. Я на вопрос ТС отвечаю.
...
Рейтинг: 0 / 0
22.01.2018, 13:00
    #39588252
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
skyANAPetro123,
тебе надо, ты и проверяй. Я на вопрос ТС отвечаю.
...
Рейтинг: 0 / 0
22.01.2018, 13:01
    #39588254
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
skyANA,
Отвечай. Я его код с тормозами не видел.
Были только предположения.
Удачи!
...
Рейтинг: 0 / 0
22.01.2018, 13:14
    #39588268
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать код?
Petro123skyANA,
Отвечай.Спасибо, что разрешил
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как организовать код? / 25 сообщений из 48, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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