16.02.2012, 20:47 | #1 |
Участник
|
Управление cacheAddMethod()
Уважаемые коллеги, Добрый вечер.
Добавление display-метода в кэш очень замечательная вещь.Раньше приходилось на это тратить время на программирование. Но, насколько я понимаю, он в кэш ложит то, что хранится в буфере. Возможно ли как-нибудь этот буфер увеличить? Для простоты восприятия приведу пример : Пользователь открывает форму, на которой висит display-метод. Форма не много задумывается, потом открывается. По прокрутке колесиком вниз пользователь "листает" содержимое. Прокрутка вниз не много начинает притормаживать, потому что сначала считываются(расчитываются) реальные данные, только потом записываются в кэш. Далее пользователь крутит колесико вверх, и вот тут мы видим все удобства этой фичи. Тормозов нет. К этому вопрос, можно ли как-нибудь увеличить буфер записывания в кэш значений display-метода? Т.е. пусть форма откроется чуть дольше, но прокручивание грида вверх и вниз не вызовет у пользователей неудобств, связанных с тормозами.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
16.02.2012, 22:02 | #2 |
Участник
|
|
|
16.02.2012, 22:15 | #3 |
Участник
|
Спасибо за замечание.
Меня волнует эта тема потому, что раньше в качестве кэша мы использовали мар-ы и могли программно определять какой диапазон закэшированных display-методов необходим.Но для этого нужно программировать.Сейчас - одна строчка в методе init() соответствующего датасорса и все ок.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
16.02.2012, 22:17 | #4 |
Member
|
Максимальный размер буфера в конфигурационной утилите АОСа пробовали увеличить?
С точки зрения теории формы открываться будут дольше. При пролистывании при возникновении необходимости подчитывания тормозить будет дольше. Проверьте.
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: Pustik (3). |
16.02.2012, 22:21 | #5 |
Участник
|
Спасибо, обязательно проверю.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
16.02.2012, 22:29 | #6 |
Участник
|
Цитата:
достаточно прочитать описание к этому параметру путем нажатия F1 или на кнопку Online help |
|
16.02.2012, 22:43 | #7 |
Участник
|
Если это прошито в ядре, то конечно придется смириться. Но попробовать, я попробую.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
16.02.2012, 22:47 | #8 |
Member
|
2 lvan:
Вопрос, вроде, был про то, как считать за раз больше данных, если я правильно умею читать. Что каксается кеширования display-методов, то для всех считанных записей значения рассчитываются сразу. От этого форма несколько тормозит при открытии и при подчитывани ипри пролистывании, но не тормозит в других случаях. А что конкретно вы имеете в виду?
__________________
С уважением, glibs® |
|
17.02.2012, 01:11 | #9 |
Участник
|
Я имею ввиду то, что размер буфера в настройке AOS не влияет никак на объем буфера, который используется для кеширования с помощью cacheAddMethod
|
|
17.02.2012, 14:00 | #10 |
Участник
|
На сколько я помню, размер буфера влияет на максимальный разрешенный размер текста sql запроса.
Или мы говорим про разные буфера?
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
17.02.2012, 14:06 | #11 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Pustik (3), ivas (2). |
17.02.2012, 14:11 | #12 |
Британский учённый
|
Как вариант.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
17.02.2012, 15:41 | #13 |
Британский учённый
|
Я на днях столкнулся с другой проблемой с дисплей методами. Как обновить закэшированные поля, когда их значение обновилось. Т.е. в моем случае форма отображает запас в наличии и после резервации на этой же форме, обновляется только текущая и соседние строки. Остальные строки обновляются только при перемещении к ним.
Случайно выяснил, что этот код сразу обновляет все строки: X++: SalesLineGrid.resetUserSetting();
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: macklakov (5), plumbum (2). |
17.02.2012, 16:02 | #14 |
Участник
|
Цитата:
Сообщение от S.Kuskov
Нет если и существует такое ограничение, то здеть точно не про него
Maximum buffer size
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
17.02.2012, 16:12 | #15 |
Участник
|
Цитата:
Сообщение от Link
Я на днях столкнулся с другой проблемой с дисплей методами. Как обновить закэшированные поля, когда их значение обновилось. Т.е. в моем случае форма отображает запас в наличии и после резервации на этой же форме, обновляется только текущая и соседние строки. Остальные строки обновляются только при перемещении к ним.
Случайно выяснил, что этот код сразу обновляет все строки: X++: SalesLineGrid.resetUserSetting();
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
17.02.2012, 16:15 | #16 |
Британский учённый
|
В данном случае, нужно обновлять сразу как пользователь ввел новое значение, так что executeQuery() никак не подходит.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
17.02.2012, 16:20 | #17 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Pustik (3). |
17.02.2012, 16:24 | #18 |
Участник
|
Т.е. после изменения поля на текущей строке должны обновиться данные display-метода на соседних? Вы это имеете ввиду?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
17.02.2012, 16:41 | #19 |
Британский учённый
|
Цитата:
Так работает, но обновление сильно заметно на глаз и все равно оно идет последовательно. X++: element.lock();
KAB_SalesReleaseOrderPicking_ds.research(true);
element.unLock(); В этом случае все значения отображаются моментально, экран даже не дергается. X++: SalesLineGrid.resetUserSetting();
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: Pustik (3). |
17.02.2012, 16:45 | #20 |
Участник
|
понятно
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
|