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