Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
1

Оптимизация кода (HTML, CSS, JS)

21.11.2014, 19:40. Показов 2318. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток уважаемые!

Недавно задался себе вопросом: как оптимизировать страницу, в соответствии со всеми рекомендациями Google Page Speed?

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

Основным непонятным для меня моментом является рекомендация убрать из заголовочный части сайта ссылки на CSS и JS. И если решений с JS'ом я вижу несколько, например добавить к скриптам тег асинхронной загрузки (из-за которого кстати то и дело наровит отвалиться то слайдер, то ещё что-нибудь) или просто вытащить скрипты перед </body>, то что делать CSS-файлами - я решительно не понимаю.

Следуя рекомендация гугла, я вставил в тег <style> стили для заголовочной части сайта, перенеся все остальные CSS-файлы в конец страницы... - Google - рад, валидатор - ругается матом.

Вернул обратно файлы CSS (в заголовок страницы) - валидатор - радуется, а Google опять не доволен, что файлы слишком большие...

Можно ли как-то добиться того, что бы страница и Google'у нравилась и соответствовала стандартам? Или для этого придётся отказаться от "больших файлов CSS"?

Методом "тыка" обнаружил, что Google Page Speed ругается буквально на всё, на что можно ругаться, в т.ч. на свои собственные шрифты (даже те, которые в сервисе Google Fonts отмечены "зелёным"), CSS-файлы Bootsparap'a и многое другое...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2014, 19:40
Ответы с готовыми решениями:

Оптимизация CSS-кода
Есть пара классов: .class-1{ width: 50px; height: 100px; background: url(picture.png); }...

Старые добрые HTML и CSS или новые HTML 5 и CSS 3?
Здравствуйте ) Дело собственно вот в чем. Я хочу на лето заняться изучением создания сайтов. ...

Оптимизация css кода
Здравствуйте! Есть записи на сайте, которые требуют индивидуальную визуализацию. Т.е.,...

Оптимизация html кода
&lt;b&gt;Удельный вес (%)&lt;/b&gt; &lt;b&gt;Head&lt;/b&gt; В среднем для Title:&lt;b&gt;12.6%&lt;/b&gt; В среднем для...

8
Эксперт HTML/CSS
2964 / 2599 / 1068
Регистрация: 15.12.2012
Сообщений: 9,876
Записей в блоге: 11
21.11.2014, 20:38 2
Цитата Сообщение от wolfalone Посмотреть сообщение
Можно ли как-то добиться того, что бы страница и Google'у нравилась и соответствовала стандартам? Или для этого придётся отказаться от "больших файлов CSS"?
Можно... Просто не слушайте советы гугла и не теряёте своего времени...
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
21.11.2014, 21:21  [ТС] 3
Fedor92, благодарю за ответ! Это конечно оптимальный вариант, но мне не понятен всё-таки один момент (наверное в виду скудного собственного опыта)...

Момент следующий:
1. Я не могу понять, зачем показывать пользователю "размазанный" контент, и как это "ускоряет" загрузку страницы? *при условии, что CSS грузится после загрузки основного HTML-кода
2. Если асинхронная или отложенная загрузка CSS действительно так важна, почему авторы стандартов (HTML5) не добавили такую возможность для файлов CSS, при этом добавив её для файлов JS?

P.S. Всё же не могу представить себе картину, когда пользователь вместо "белой" страницы видит "разорванную" вёрстку, т.к. CSS файл оснащён "отложенной" загрузкой... Если всё действительно настолько плохо (CSS'ы занимают сотники и тысячи килобайт) - по моему, разумнее было бы сделать какую-нибудь заставку, типа "Подождите, идёт загрузка тонн дерьма в Ваш телефон...", чем так уродовать код и стандарты...

Добавлено через 13 минут
Ещё более не ясным для меня остаётся вот что:
Если CSS вынесен в отдельный файл, сколько бы кода там не было, - он может кэшироваться браузером. При этом, если мы будем вставлять один и тот же код CSS в тело страницы, - это значительно увеличит объём каждой отдельной страницы... о какой при этом оптимизации загрузки вообще может идти речь?

Другой исход: предположим у нас есть слайдер... Скрипты грузятся либо в конце, либо асинхронно...
Результат 1: мы видим "разорванный" слайдер размотанный по странице, т.к. JS-код, который делает из этого набора картинок слайдер - ещё не подгрузился...
Результат 2: Мы скрываем блок со слайдером (с картинками) до полной загрузки и инициализации слайдера... и тут пользователь, с медленным интернет-соединением, заходит на наш сайт, читает "разорванный" и "размазанный по экрану" контент, который больше напоминает нечто непристойное, нежели грамотно спроектированный сайт и... (барабанная дробь) тут наконец-то, внезапно подгрузился слайдер! Который к слову сказать, сдвинул весь остальной контент и занял достойное место в половину экрана. При этом, пользователь возможно уже потянул свои ручонки нажать на какую-то ссылку, вместо которой вылез этот самый злосчастный слайдер (сдвинув блок ссылок выше или ниже) и пользователь угодил прямо по нему... попав при этом совсем не туда, куда собирался... (не на ту страницу)
0
Эксперт HTML/CSS
2964 / 2599 / 1068
Регистрация: 15.12.2012
Сообщений: 9,876
Записей в блоге: 11
21.11.2014, 23:50 4
Цитата Сообщение от wolfalone Посмотреть сообщение
Я не могу понять, зачем показывать пользователю "размазанный" контент, и как это "ускоряет" загрузку страницы? *при условии, что CSS грузится после загрузки основного HTML-кода
Мне кажется всё логично... Сначала формируется начальный макет сайта, то есть его "скелет"(осуществляется разметка страницы и определяется расположение блоков)... На следующем этапе к html("скелету страницы и блокам") применяются стили и оформление... Это как старение человека детство, отрочество, старость(допустим)... Не может же человек пропустить жизненный этап: сразу из младенца превратиться в старика... Так и в загрузке сайта всё последовательно...

Цитата Сообщение от wolfalone Посмотреть сообщение
Если асинхронная или отложенная загрузка CSS действительно так важна, почему авторы стандартов (HTML5) не добавили такую возможность для файлов CSS, при этом добавив её для файлов JS?
Собственно, а какой в этом смысл? Что такое по сути css-файл - это текстовый файл не содержащего ни управляющих команд ни запросов, который подгружается в порядке своей очереди... Кто заинтересован в том, чтобы Вы сразу увидели перед собой красивый сайт? Да никто... Выкупайте трафик в районе 25Мб и все проблемы уйдут... ИМХО начальный вид сайтов меньше всего волнует W3C - консорциум... Нет трафика ставьте заглушки - сейчас много есть интересных, если любите эстетизм... Совсем недавно видел одно "произведение искусства", пока сайт подгружается на главной странице висит оповещение "Загрузка сайта " с счётчиком... Только сам опробовать не успел, но думаю ещё успею...
0
636 / 523 / 195
Регистрация: 19.08.2013
Сообщений: 1,400
22.11.2014, 00:34 5
Недавно кстати по гуглу лэндинг оптимизировал smilevending.ru делается все просто и там все описано как
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
22.11.2014, 00:46  [ТС] 6
Цитата Сообщение от vovandr Посмотреть сообщение
Недавно кстати по гуглу лэндинг оптимизировал smilevending.ru делается все просто и там все описано как
Я почитал описания... Дело в том, что, если делать "как там написано" - валидатор ругается благим матом... А вариант "Засунуть все CSS прямо в страницу" - расходится с моим личным понятием о здравом смысле... Отсуда собственно и вопросы.

Добавлено через 6 минут
Ещё один момент, который противоречит пониманию данного вопроса гуглом, выдержики из него:
Исследуя производительность в Yahoo!, мы пришли к выводу, что помещение CSS в HEAD страницы ускоряет ее загрузку, т.к. позволяет отрендерить ее постепенно.
Размещение CSS в конце страницы не позволяет начать постепенный рендеринг многим браузерам, в числе которых Internet Explorer. Браузер не начинает рендерить страницу, чтобы не пришлось перерисовывать элементы, у которых во время загрузки изменится стиль. Firefox начинает сразу отрисовывать страницу, в процессе загрузки, возможно, перерисовывая некоторые элементы, но это является причиной появления нестилизованного контента (FOUC — Flash Of Unstyled Content).
Оригинал: http://webo.in/articles/habrah... practices/ (пункт 5).

Я конечно не умаляю достоинств гугла... Но что-то всё-таки тут странно, как минимум. Не может быть, что бы разработчиком стандартов HTML5/CSS и пр. подобных было глубоко фиолетово на то, как там что у пользователя загружается...

Логичный вывод, я так понимаю один:
"Следуй рекомендациям всех и сразу, пихай все CSS в каждую страницу! Тем самым сокращая количество запросов к серверу HTTP" (и увеличивая попутно объём каждой страницы на N-килобайт).

Добавлено через 1 минуту
P.S.

Долой!
HTML5
1
<link href rel="stylesheet" />
0
636 / 523 / 195
Регистрация: 19.08.2013
Сообщений: 1,400
22.11.2014, 01:40 7
В head помещaть надо не все стили. Есть такое понятие как critical path. В двух словах это те стили, которые необходимы для визуального представления страницы в момент ее загрузки...чтобы не делать запрос на сервер, часть стилей помещается в head. А остальные подгружаются уже потом. Таким образом пользователю стилизованная страница показывается намного быстрее. Вообще читайте на google, а не сайтик там какой-то.
1
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
22.11.2014, 02:43  [ТС] 8
Вот так выглядит процедура следования рекомендациям от Google... Именно по этой причине меня мучает вопрос: можно ли как-то сохранить валидность кода, и при этом, соблюдать рекомендации Google'a?

Яндекс например, подключает в шапке какой-то CSS-скрипт, и гугл его "ест" нормально. При этом, мой 5-7Кб CSS-файл (подключенный в шапке) - ему очень не нравится...
Миниатюры
Оптимизация кода (HTML, CSS, JS)  
0
636 / 523 / 195
Регистрация: 19.08.2013
Сообщений: 1,400
22.11.2014, 09:46 9
Цитата Сообщение от wolfalone Посмотреть сообщение
Вот так выглядит процедура следования рекомендациям от Google... Именно по этой причине меня мучает вопрос: можно ли как-то сохранить валидность кода, и при этом, соблюдать рекомендации Google'a?
Лично я использовал валидатор, когда только начинал версткой заниматься, давно это было. Сейчас же мне важно чтобы сайт быстро грузился и хорошо выглядел в браузерах по тз. Попробуйте перекинуть линк перед закрывающим тегом body, не уверен конечно, что поможет. А еще лучше, гоняйтесь не за валидатором, а за скоростью. Еще раз повторю, что не все стили наверх надо выносить.
0
22.11.2014, 09:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2014, 09:46
Помогаю со студенческими работами здесь

Оптимизация кода страницы школьного сайта на HTML
Всем доброго времени суток. Читая данный форум и другие ресурсы, стараюсь как могу улучшить код...

Форматирование html/css/js кода
Добрый день. Кто знает, есть какое-нибудь расширение/библиотека или еще что-нибудь, что можно...

Подключение html кода с css к php
Здравствуйте!Помогите пожалуйста столкнулся с трудностью,создал сайт HTML и связал его с CSS теперь...

Редактор кода для html, css, js, php в qt
Приветствую. Если вкратце, я разрабатываю редактор кода (с подсветкой синтаксиса html, css, php, js...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru