Использование статичных данных, вместо динамических — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «При использовании XSLT-шаблонизатора, некоторые данные можно получить динамически, т.е. исп…»)
 
(нет различий)

Текущая версия на 09:31, 5 декабря 2011

При использовании XSLT-шаблонизатора, некоторые данные можно получить динамически, т.е. использовать какие-либо протоколы, uobject, udata, и т.д., но можно эти же данные прописать статичным html-кодом, в случае если данные не изменяются. Рассмотрим некоторые примеры.

В узле result текущей страницы, для Гостя будет следующий блок:

<user id="298" type="guest"/>

В случае, если object_id текущего пользователя был определен в глобальном шаблоне:

<xsl:variable name="user-id" select="/result/user/@id" />

то логин текущего пользователя, можно получить таким образом:

<xsl:variable name="login_user" select="document(concat('uobject://', $user-id, '.login'))//value" />

В итоге, для Гостя, в переменной login_user будет храниться значение "Гость", но совсем не обязательно производить данный вызов, если тип текущего пользователя guest:

<user id="298" type="guest"/>

можно просто сделать проверу на тип (type), и если он равен guest, то установить переменную login_user = "Гость".

<xsl:variable name="user-id" select="/result/user/@id" />

В TPL-шаблонизаторе, вместо макроса %search insert_form()%, можно сразу прописать нужный html-код для формы поиска. Важно понимать, то что если даже выполняется какой-то простой метод, какого-то модуля, время тратится как на инициализацию модуля, так ни на выполнение самого метода. При большой посещаемости сайта, 100 тыс. хитов и более, любая оптимизация будет полезна.