Есть ли более эффективная альтернатива, чем переопределение файлов шаблонов?

8

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

Редактировать 1: Конечно, причина слабой производительности не в переопределении файлов шаблонов, но если я смогу немного оптимизировать, мне придется это сделать. Кроме того, я регулярно попадаю в неприятности, отключая разметку в самом пользовательском интерфейсе представлений: например, отключение стилей строк игнорируется, когда я использую подтему Omega

Изменить 2: я знаю о возможностях внутри пользовательского интерфейса Views ; То, что я ищу, это ручной способ с точным контролем.

Мадам адам
источник
3
Что заставляет вас думать, что переопределение файлов шаблонов приводит к снижению производительности? Не сказать, что это не обязательно, но кажется, что это маловероятно. Если вы не просто убираете разметку, но также меняете логику. Может быть, вы можете отредактировать вопрос и предоставить немного больше контекста? Некоторые более подробные сведения о представлении и файлах шаблона?
Клайв
Добавлены некоторые детали выше.
Мадам Адам
Низкая производительность даже при включенном кэшировании? (Кэш просмотров + кэш страницы Anon + Memcache (возможно) + Varnish (возможно))
Beebee

Ответы:

8

Вы можете устранить ненужную разметку через пользовательский интерфейс Views.

Когда вы добавляете поля, скрытые в настройках стиля, они всегда имеют эту ненужную галочку по умолчанию

введите описание изображения здесь

Кроме того, вы можете удалить больше разметки здесь

введите описание изображения здесь

и здесь

введите описание изображения здесь

Нет Sssweat
источник
Спасибо за ваш ответ, но я знаю о возможностях внутри представлений интерфейса; то, что я ищу, это ручной способ с точным контролем.
Мадам Адам
7

Он иногда более производительный с видом на содержание дисплея вместо полей. Это лучше всего использовать в пользовательских режимах просмотра, где вы настраиваете режим просмотра для отображения нужных полей. Затем вы можете сделать отображение этого режима просмотра любым, используя шаблоны и средства форматирования. Это имеет тенденцию работать хорошо, когда у вас есть Entitycache .

Тем не менее, все системы разные. Истинное профилирование - действительно лучший способ выяснить, что требует времени. Лично я не думаю, что разметка представлений увеличивает время выполнения.

mpdonadio
источник
Интересный подход - я опишу это.
Мадам Адам
7

причина слабой производительности не в переопределении файлов шаблонов, но если я смогу немного оптимизировать, мне придется это сделать

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

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

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

acrosman
источник
2
Хорошо, теперь весь механизм становится понятнее для меня. В итоге, комментарии и ответы здесь говорят о том, что неправильно и непропорционально стараться избегать переопределений шаблонов, чтобы повысить производительность. Спасибо!
Мадам Адам