Использование статичных данных, вместо динамических — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «При использовании 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 тыс. хитов и более, любая оптимизация будет полезна.