powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как организовать код?
25 сообщений из 48, страница 1 из 2
Как организовать код?
    #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
Как организовать код?
    #39587342
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Винде там была функция WaitForMultipleObjects для асинхронщины. А тут каг?
...
Рейтинг: 0 / 0
Как организовать код?
    #39587357
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
Опять асинхронность ни при чем.
В нормальном гриде в лукап грузится только видимые значения.
Т.е. их меньше чем записей на экране.
Вы бы в js ветке спросили.
...
Рейтинг: 0 / 0
Как организовать код?
    #39587360
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Relic Hunter,
Опять асинхронность ни при чем.
В нормальном гриде в лукап грузится только видимые значения.
Т.е. их меньше чем записей на экране.
Вы бы в js ветке спросили.Нифига не понял, что за видимые-невидимые. Но все равно спасибо
...
Рейтинг: 0 / 0
Как организовать код?
    #39587361
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
Почему долго грузятся справочники, если нужно грузить только их часть. А не все города РФ в лукапе города.
Логично?
Спросить в js ветке тоже не понял?
...
Рейтинг: 0 / 0
Как организовать код?
    #39587366
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Relic Hunter,
Почему долго грузятся справочники, если нужно грузить только их часть. А не все города РФ в лукапе города.
Логично?
Спросить в js ветке тоже не понял?

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

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


...

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


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

ПС
Вы хоть постановку задачи прочтите.
...
Рейтинг: 0 / 0
Как организовать код?
    #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
Как организовать код?
    #39587429
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

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

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

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

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

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

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


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