Здравствуйте. Вопрос может не совсем корректный, но все же мне интересно.
Есть тип материала (страница) "Услуги". И есть десяток созданных полей (стандартным field).
Мне на столько понравилось работать с views, что через поля делать материал (страницу) уже не то.
Вопрос вот в чем: Если я делаю поля скрытыми в manage display (управление отображением), а потом эти же поля вытаскиваю через вьюху и контекстом привязываю к тому же самому id материала, то это нормальный подход?
То есть я скрыл поля на странице и их же вытащил через вьювс на той же самой странице. Не будет ли в этом случае больше нагрузка к бд и снижение производительности? Скрытое поле не рендерится и получает тоже самое свойство как hide($content['field_name']),?;
И если мне нужны ajax комментарии к этой странице, верным ли будет подходом их скрыть и потом вытащить через views ajax на той же странице, где они и были до скрытия?
Комментарии
Скорее нет.
Views инструмент, основное назначение которого - выборка данных из БД (в т.ч. с помощью GUI).
Область его применения - построение списков (нод или других сущностей), всякого рода фильтрация, сортировка и т.п.
И даже если Вы использует представления для отображения материалов - лучше использовать режим отображения сущности (Анонс, Полный и т.п.) вместо вывода отдельных полей. (Это скорее ИМХО)
Для удобной настройки внешнего вида отдельных сущностей есть много других инструментов.
В частности, советую обратить внимание на Display Suite и Panels.
Посмотрел отзывы Display Suite и Panels тоже довольно тяжелые модули.
А, не знаете, сам views больше дает нагрузку, нежели выводить через стандартные поля?
Что конкретно Вы пытаетесь измерить?
Ровнять "нагрузку" представлений и дисплей сьюта, это как ровнять молоток с отверткой.
Инструменты - просто предназначены для разных задач.
Измерить нагрузку на хостинг, потребление памяти, запросы к бд итд.
Читал, что связка DS+panels снижает производительность. Или раньше снижала...
Верно. Снижает. Как и любой другой дополнительный инструмент.
Прибавление в кодовой базе физически не может не повлиять на работу.
Просто все это можно настраивать, и в целом, для работы это будет обычной страницей. "Нагрузка" - только в момент генерации.
Но, задаваться подобными вопросами это скорее попытка экономии на спичках.
Если Вам нужен инструмент для кастомизации из админки - Вы берете и закрываете глаза на их минусы.
Если можете реализовать без них - супер, конечно так будет меньше "нагрузки".
Ясно. Просто у меня views делает выборку из статьи, на странице /all. (что-то типа кинопоиска). Но при клике на фильм из страницы-агрегатора views, хочется чтобы внешний вид таблицы сохранялся как во views. Но на самой странице фильма, естественно, обычные поля. А мне хотелось, чтобы они сохраняли вид как во views. Можно конечно переверстать эти стандартные поля, но я думал разницы нет как их показывать:views'ом или стандартными полями.
Потому и
Сегодня смотрел по поводу тизеров, якобы вызывается node_load (Загружает объект узла из базы данных) и нагрузка больше, когда выводятся поля - создается только один запрос.
https://youtu.be/OWT3e0TZUhg?t=59s
С первой минуты. Блин я запутался. Может быть Devel показывает как и сколько идет запросов? В случае тизеров и в случае полей. Очень волнует быстродействие и масштабируемость в будущем.
Devel - да, может показывать лог запросов страницы (devel/settings).
Views - может показывать текущий запрос и статистику выполнения в режиме настройки представления (admin/structure/views/settings).
нашел на хабре 8. [Производительность] Во вьюс предпочитайте использовать стиль ряда "Fields" (поля), а не "Nodes" (ноды). В режиме "Nodes" происходит вызов node_load() на каждой ноде в вашем виде, что может стоить вам более 50 запросов на каждую ноду. В режиме "Fields" происходит просто сбор необходимой информации в одном запросе.
Не забывайте обращать внимание на даты "советов" и версии.
Сегодня тестировал SQL запросы Devel'ом. Выводятся 4 материала вьювсом. (Поля заголовок, body, изображение и дата создания)
Поля - 174 запроса (без кэша)
содержимое тизер - 207 запросов (без кэша)
с отключенным views тизеры - 192 запроса.
поля с кэшем от views - 158 запросов
содержимое анонс с кэшем views - 188 запросов.
Не нормальный, так как Вы отключаете средства которыми решается задача и пытаетесь решить её контрибутным модулем.
Нужна гибкость? Используйте
https://www.drupal.org/project/entity_view_mode + https://www.drupal.org/project/ds
Еще больше гибкости через UI - https://www.drupal.org/project/panels но более тяжелое решение