Мобильная и десктопная верстка, как не грузить лишнее?
Я стараюсь делать на сайте одну ветку шаблонов, и для десктопов и для мобильных.
Пользуюсь конечно для этого Bootstrap'ом. Давно уже с ним работаю. Но постоянно прихожу к одному и тому же вопросу.
При постепенном обрастании страниц сайта функционалом, фишками, формами неизбежно происходит желание чтобы какие-то элементы выглядели на десктопе и на мобильном по разному, к примеру div с картой, или же рекламный блок.
Я не нашел ничего изящнее чем просто делать два дива, которым давать соответственно .hidden-xs или .hidden-md
Но при таком повороте пользователь прогружает оба дива.
Есть ли возможность разделять в одном темплейте две сущности?
Если блоки достаточно мелкие можно грузить и оба.
Если же блоки крупные, и это не критично для SEO грузите их по ajax.
Для мобильных, чтобы уменьшить время загрузки, вместе со страницей можно загружать только элементы первого-второго экрана, а остальные по ajax следом подтягивать.
Этакий lazyload контента.
Первый более менее удобоваримый ответ, в принципе по ajax грузить блоки это вариант, вопрос вот еще в чем - как средствами jQuery, Bootstrap подгружать те или иные элементы? Смотреть по разрешению экрана? Или же все таки юзер агент брать?
Dp76: По своему опыту скажу, что лучше ориентироваться по ширине браузера. Ориентироваться на устройство, сами понимаете, нецелесообразно при их обилии. А на Usear-Agent тем более - он вообще может никакой информации о размерах окна браузера не нести.
Ширину можно определить любым удобным Вам методом:
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
или
$( window ).width();
$( document ).width();
Затем обработать её и передать в ajax запросе. В зависимости от параметров запроса выдать соответствующую версию блока.
webdisigner
а вот и не правда
картинки товаров для интернет магазина з**тесь задавать в стилях
грузить десктопные большие картинки для планшета с мобильным интернетом - глупо. Подключать php решения в виде responsive images - костыль. Так что техника офигенная, темболее чем buit-in де факто стандарт будущего.
Картинки успешно разделяются через backround image и media queries - лишние не грузятся.
А вот с тегом img посложнее - нужно специальное решение на php использовать вроде responsive images.
Или самому на js закодить - в зависимости от вьюпорта подгружать в img src ту или иную картинку
вот в этом весь подвох, пользоваться без понимания происходящего
https://developer.mozilla.org/en-US/docs/Web/CSS/M...
первая же строка дает пояснение как делать отдельный цсс (картинки, фоны и тп можно засунуть в этот цсс в дата-урл или просто грузить нужного размера) + srcset + модульная структура