На сайте формируется меню из top-level терминов таксономии (из одного словаря) с картинками, и их прямых дочерних терминов 2-го уровня тоже с картинками, а также нод с картинками, привязанных к этим терминам.
Но в мобильной версии показывать картинки и дочерние ноды не нужно (это меню, оно не должно разрастаться), только названия терминов.
Если просто скрыть через css - по факту то все равно все подгружаться будет. Как избежать загрузки ненужного контента из мобильной версии? Или как гарантированно определить на уровне PHP, что в данный момент грузится именно мобильная версия с разрешением экрана ниже какого-то условного?
AJAX-запрос к PHP из уровня JS нежелателен.
То же самое другими словами: можно ли из php узнать на мобилке мы или на десктопе?
Комментарии
Browscap
А зачем так и почему? Чем мобильное меню на js не устраивает? Там размеры то копеечные и то скрыты, а в мобильном меню можно и не скрывать а уменьшить и сделать красиво
mcdonalds.ru наведите на основное меню. (появятся подпункты и конечные товары). Делаю так, понятно, что картинки в мобилке не нужны. На джава тоже не вариант (беру термины таксономии)
Context
Context layouts
Context Mobile Detect
Что-то в этом есть, но:
Как-то загадочно всё. ) Что ему надо, curl что ли открытый?
Ну и далее тоже не всё пушисто:
5 топ-левел терминов в каждом по 7 дочерних терминов по 10 нод в каждом дочернем термине:
5 * 7 * 10 = 350 нод
Плюс картинки самих дочерних терминов:
5 * 7 =35;
350 + 35 = 385
Допустим, средний размер размер картинки 7 кб:
385 * 7 = 2695 кб, или около 2.7 мб дополнительного и ненужного трафика для мобильных устройств, которые порой имеют относительно медленный интернет. Несколько секунд загрузки можно выиграть.
Минус время/ресурсы на загрузку/формирование нод и картинок на стороне сервера/PHP. Тоже как бы фактор скорости. Почему бы и не отказаться, если не настолько уж нужно.
В какой-то степени тоже вариант, но нет версии для D8 (из беседы с ТС знаю, что у него 8ка), да и для D7 пока в альфа-релизе. Ну и опять как-то заступорила загадочная фраза:
Что означает... а леший их разберёт, что они тут вообще хотели сказать. ) Может, это сказано в противовес вышеупомянутому модулю browscap, который для своей корректной работы требует отключать кеш страниц?
Я думаю, что проще тогда уже взять отдельно библиотеку mobile_detect.php и пытаться на ней слепить что-то своё. )
ЗЫ. Около часа набирал этот пост на андроид-мобильнике. ) Склоняюсь к мысли, что все мобильное - есть зло. "Засек плотов", ёмана.
https://www.drupal.org/project/mobile_detect
Light variant https://www.drupal.org/project/browserclass
добавлю к последнему комментарию от sas@drupal.org : drupal8
До кучи https://www.drupal.org/project/context_breakpoint - пользовался.
https://www.drupal.org/project/browscap_context - не пользовался.
https://www.drupal.org/project/mobile_detect/releases/8.x-2.x-dev
Да, сорри https://www.drupal.org/project/browserclass нет для D8, по почему нет, может человек порт сделает, мы же не знаем его уровень знаний?!
Я бы воткнул лэйзилоад для компов, а для мобил бы не грузил. Естественно, сделал бы всё на js, предварительно избавившись от предрассудков на эту тему.