|
Вызовы сервера 4 vs 1 | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
kible
28.05.12
✎
10:24
|
Добрый день! Что будет быстрее, 4 вызова сервера (Объем данных = 20000 байт) или 1 вызов (Объем данных = 27000 байт)
|
|||||||
1
andrewks
28.05.12
✎
10:25
|
странный вопрос
1 |
|||||||
2
kible
28.05.12
✎
10:26
|
(1) Почему? Объем данных при 4 вызовах меньше.
|
|||||||
3
andrewks
28.05.12
✎
10:33
|
что быстрее: за один раз снять с банкомата 27000 руб, или за четыре раза снять по 5000 руб?
|
|||||||
4
Irbis
28.05.12
✎
10:34
|
(3) Это смотря какими купюрами банкомат отслюнявливать будет
|
|||||||
5
andrewks
28.05.12
✎
10:34
|
(4) ну, условимся, что одинаковыми
|
|||||||
6
Fragster
гуру
28.05.12
✎
10:35
|
зависит от того, что на сервере делается
|
|||||||
7
Irbis
28.05.12
✎
10:35
|
Так и с данными, вдруг потом из кэша доставать будет. пока постановка вопроса некорректна.
|
|||||||
8
Fragster
гуру
28.05.12
✎
10:35
|
(6)+ автор же весь такой загадочный
|
|||||||
9
andrewks
28.05.12
✎
10:40
|
тем не менее, если условиться, что данные получаются одним и тем же алгоритмом, думаю, по статистике 2-й вариант победит
|
|||||||
10
Irbis
28.05.12
✎
10:42
|
(9) Оно конечно логично и скорее всего при прочих равных так и будет, но автор не только вопрос сформулировтаь не может, а даже тупо замер не сделал.
|
|||||||
11
kible
28.05.12
✎
10:50
|
На сервере обновляются динамические списки.
|
|||||||
12
kible
28.05.12
✎
11:03
|
Еще вопрос. Никак не могу понять почему 2 раза вызывается сервер при активации строки таблицы?
&НаКлиенте Процедура ОсновнаяТаблицаПриАктивизацииСтроки(Элемент) Если ЭтаФорма.Элементы.ОсновнаяТаблица.ТекущиеДанные <> Неопределено Тогда ПодключитьОбработчикОжидания("ОбработкаОжидания",0.1,Истина); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОбработкаОжидания() Период = ЭтаФорма.Элементы.ОсновнаяТаблица.ТекущиеДанные.ПериодМесяц; Элементы.Начисления.Период.ДатаНачала = Период; Элементы.Начисления.Период.ДатаОкончания = КонецМесяца(Период); Элементы.Перерасчеты.Период.ДатаНачала = Период; Элементы.Перерасчеты.Период.ДатаОкончания = КонецМесяца(Период); Элементы.Оплата.Период.ДатаНачала = Период; Элементы.Оплата.Период.ДатаОкончания = КонецМесяца(Период); ОбновитьСписки(,Период); КонецПроцедуры &НаСервере Процедура ОбновитьСписки(ОбновлятьОсновнуюТаблицу = Ложь,Период) ПоказанияСчетчиков.Параметры.УстановитьЗначениеПараметра("Дата",КонецМесяца(Период)); Если ОбновлятьОсновнуюТаблицу Тогда Элементы.ОсновнаяТаблица.Обновить(); КонецЕсли; Элементы.Начисления.Обновить(); Элементы.Перерасчеты.Обновить(); Элементы.Оплата.Обновить(); КонецПроцедуры |
|||||||
13
kible
28.05.12
✎
11:04
|
(12)+ После завершения процедуры "ОбновитьСписки" сервер вызывается 2 раза.
|
|||||||
14
kible
28.05.12
✎
11:14
|
^
|
|||||||
15
acsent
28.05.12
✎
11:18
|
нужно учитывать что контекстный вызов сервере тягает неявно форму туда-сюда
|
|||||||
16
kible
28.05.12
✎
11:25
|
(15) Как в таком случае лучше обновить списки? Если обновляю списки на клиенте то сервер вызывается 3 раза.
|
|||||||
17
Fragster
гуру
28.05.12
✎
11:25
|
Процедура ОсновнаяТаблицаПриАктивизацииСтроки(Элемент)
Если ЭтаФорма.Элементы.ОсновнаяТаблица.ТекущиеДанные <> Неопределено Тогда ПодключитьОбработчикОжидания("ОбработкаОжидания",0.1,Истина); КонецЕсли; КонецПроцедуры |
|||||||
18
Fragster
гуру
28.05.12
✎
11:26
|
это еще хорошо, что не циклится
|
|||||||
19
kible
28.05.12
✎
11:27
|
(18) Да, в одной форме встретился с такой проблемой.
|
|||||||
20
kible
28.05.12
✎
11:42
|
ап
|
|||||||
21
kible
28.05.12
✎
11:51
|
ап.
|
|||||||
22
Fragster
гуру
28.05.12
✎
11:52
|
(21) убери (17) уже
|
|||||||
23
kible
28.05.12
✎
11:53
|
(22) Мне нужно при активации строки получить период из строки и обновить списки. Куда я должен убрать (17)?
|
|||||||
24
Fragster
гуру
28.05.12
✎
11:55
|
(23) после обновления таб части, если в ней был курсор - активизация строки еще раз отрабатывает, чего непонятного-то?
|
|||||||
25
Fragster
гуру
28.05.12
✎
11:56
|
а зачем обновление ТЧ через обработку ожидания - так вообще ХЗ
|
|||||||
26
kible
28.05.12
✎
11:58
|
(25) Потому что при открытии формы при активации строки списки не обновлялись.
|
|||||||
27
kible
28.05.12
✎
11:59
|
(24) Переместил код в обработку выбора. Не помогло. Сервер вызывается 2 раза.
|
|||||||
28
Юрий Лазаренко
28.05.12
✎
12:03
|
(0) Однозначно второй вариант.
(2) У тебя время тратится не только на перекачку данных, но и на сам факт вызова сервера, а это намного бОльшее время, чем нужно на перекачку 7000 байт. 1 |
|||||||
29
kible
28.05.12
✎
12:07
|
(28) С этим разобрались. Теперь нужно как-то правильно обновить списки.
|
|||||||
30
Юрий Лазаренко
28.05.12
✎
12:33
|
(29) Ну попробуй понять, где у тебя эти вызовы происходят. Попробуй закомментить строку
ОбновитьСписки(,Период); вставь вместо нее СообщитьПользователю("БлаБлаБла"). Таким образом исключаем явный вызов сервера. Запусти и посмотри, сколько раз у тебя произойдет вызов сервера. Если ни одного раза, значит копать надо внутри процедуры &НаСервере Процедура ОбновитьСписки(ОбновлятьОсновнуюТаблицу = Ложь,Период) Если сообщение выйдет 2 раза, значит это ты его 2 раза явно вызываешь. |
|||||||
31
МуМу
28.05.12
✎
12:36
|
Бредовый вопрос.:) Возьми да и проверь!
|
|||||||
32
kible
28.05.12
✎
13:17
|
(30) Сообщение выходит 1 раз. А что не так внутри процедуры?
|
|||||||
33
Юрий Лазаренко
28.05.12
✎
13:31
|
(32) Тут думать надо... Ну попробуй для начала закомментить вообще все строки внутри серверной процедуры, посмотри на количество вызовов. Если останется 2, значит дело сложное и думать придется долго. Если один, то раскомментаривай строки по одной и смотри, после какой из них происходит второй вызов.
|
|||||||
34
kible
28.05.12
✎
13:38
|
(33) Если есть данные этом списке Элементы.Начисления.Обновить(); то сервер вызывается 2 раза
|
|||||||
35
kible
28.05.12
✎
13:40
|
(34)+Этот список состоит из документов начисления. Если данные при обновлении изменяются тогда сервер вызывается 2 раза.
|
|||||||
36
kible
28.05.12
✎
13:55
|
(33) Понял почему 2 вызова. Почему-то при возвращении формы с сервера все списки заново обновляются. Как теперь этого избежать?
|
|||||||
37
Юрий Лазаренко
28.05.12
✎
13:56
|
(36) Наверно в свойствах динамических списков стоит автообновление
|
|||||||
38
Юрий Лазаренко
28.05.12
✎
13:57
|
+(37) ДинамическоеСчитываниеДанных
|
|||||||
39
kible
28.05.12
✎
14:25
|
(38) Убрал галочки. То же самое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |