База знаний

Справочная система SP-XML

Связанные темы:

Общие сведения о платформе SP-XML
Структура приложения
Формы описания данных (.xmd)
Встроенные функции
Встроенные объекты
Встроенные глобальные переменные
Экранные формы (.xms)
Язык XQuery
Дополнительные возможности платформы
Первые шаги в освоении платформы SP-XML

Кэширование записей в каталогах

Одной из наиболее частых операций в приложении является получения записи в каталоге по ее ID, например при вызове атрибутов ForeignElem, ForeignDispName и др. Поскольку такие операции часто вызываются массово (например при показе ячеек в списках), встает вопрос об их эффективности. Дело в том, что в случае вызова такой операции на рабочем месте сетевой версии приложения, потребуется обращение к серверу за каждой записью, поскольку полное содержимое каталогов доступно только на сервере.

 

Для эффективного выполнения таких операция реализован функция кэширования записей в каталогах для рабочего места сетевой версии приложения. Существуют две модели кэширования:

Полное кэширование. Обычно используется для каталогов ограниченного размера, например справочников. В этой модели при первом обращении к записи каталога по ID происходит загрузка всех элементов каталога в кэш на рабочем месте, и в дальнейшем все данные берутся из кэша.

Дискретное кэширование. Обычно используется для большинства каталогов, содержащих неограниченный объем данных.  В этой модели при обращении  к любой записи каталога, сначала проверяется ее наличие в КЭШе, и если запись есть в кэше, возвращаются данные из кэша, а если записи в кэше нет - данная запись загружается с сервера.

 

По умолчанию выбор модели кэширования происходит автоматически при подключении рабочего места к серверу приложения, при этом используются данные о количестве записей в каждом из каталогов. Также модель кэширования можно задать вручную.

 

При сохранении или удалении какого-либо из объектных документов, кэш соответссвующего каталога обнуляется. Тоже самое происходит на стандартную команду Refresh (F5).

В новой объектной модели сокращенная форма списка (LIST) генерирует запрос XQuery с опцией preload-foreign-data=1, которая автоматчики заполняет кэши каталогов, на которые есть ссылки через FOREIGN-ELEM из результата запроса, недостающими элементами.

 

Аналогичная система кэширования используется на сервере приложения в случае использования встроенного SQL-провайдера (новая объектная модель).