|   |   | 
| 
 | Вызовы сервера 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) Убрал галочки. То же самое.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |