Оксид азота в URL
Вот и наступил час обещанного редизайна, а с ним и начальной отчисти и попытки ускорить наш сайт.
Благодаря энтузиазму девушки получился довольно-таки неплохой дизайн, который претерпер правки во время верстки, но по-моему все это послужило ему на пользу.
Изменения эти в большинстве своем были вызваны тем, что необходимо было оставить все же некоторые элементы, для улучшения SEO качеств, а другие попросту что бы не нарушать юзабилити.
Однако то, что началось как внешний тюниг - закончилось разгоном движка...
Давно мне не давали покоя все эти лишние скрипты от Joomla! в страницах. Я знал где они хранятся, но, как оказалось, ещё в 1.6 вырезали возможность чистить этот объект.
На этом можно было бы опустить руки, но как можно считать себя отчасти "знающим человеком", писать людям в своём блоге как оптимизировать сайт при этом?! Так что для нас это не выход. Как не является выходом и лезть в файлы системы, ведь любой update и... всем знакомая история. Но в чём проблема, кроме больших глаз страха — объект есть, давайте напишем свою функцию:
foreach($headlink['links'] as $link => $optins){ $code=''; $code.='<link href="'.$link.'"'; if($optins['relType'] && $optins['relation']){ $code.=' '.$optins['relType'].'="'.$optins['relation'].'"'; } if($optins['attribs']['type']){ $code.=' type="'.$optins['attribs']['type'].'"'; } if($optins['attribs']['title']){ $code.=' title="'.$optins['attribs']['title'].'"'; } $code.='/>'; echo $code; } unset($code); unset($link); unset($optins); foreach($headlink['metaTags']['standard'] as $name => $value){ $code=''; $code.='<meta name="'.$name.'" content="'.$value.'">'; echo $code; } unset($code); unset($name); unset($value); foreach($headlink['styleSheets'] as $link => $optins){ $code=''; $code.='<link rel="stylesheet" href="'.$link.'"'; if($optins['mime']){ $code.=' type="'.$optins['mime'].'"'; } $code.='/>'; echo $code; } unset($code); unset($link); unset($optins); if($headlink['style']['text/css']){ echo '<style>'; echo $headlink['style']['text/css']; echo '</style>'; }
И пару тэгов в нужных местах и у нас готов чистый head. Без всякой дребедени. Все скрипты будут вноситься вручную отныне — единственный минус. Но меня он как-то не смутил.
Спешу сообщить, что, к сожалению, метрика и аналитика, в придачу к ним и addthis, запоганили подгружая асинхронно скрипты и стили наш head. Но я всё равно доволен, ведь целью было контролировать набор и порядок подгружаемых скриптов - и тут мы ставим галочку.
Что касается фишек под капотом, то у нас:
- jQuery
- bootstrap 3
- font awesome
- {less}
{Less} на стороне клиента, пока что, возможно, в дальнейшем скомпилирую и залью просто css файлом, если увижу в этом неимоверный профит.
jQuery и bootstrap.js по факту пока не используются, но ведь то, что ты только учишься для получения водительских права - не значит, что при покупке машины ты будешь покупать ту, у которой 3 передачи переднего хода. Но не отрицаю, что пока они мертвый груз.
Что касается верстки - сверстаны пока только главные компоненты и модули. Чуть позже сверстаем страницы ошибок, и все до которых можно добраться клацая по линкам. Верстать компоненты которые в жизни не увидят своего применения - не вижу смысла.
А теперь к сладенькому: тестим что у нас получилось.
И того load вышел на 920ms, DOMContentLoaded - 642ms.
И это не лучший результат среди получавшихся!.. И да, я знаю кого винить: AddThis. Функции Share можно запросто написать самому, не будет появляться даже хэша в строке, но пока не могу себя заставить отказаться от них, просто потому, что там куча всего. Хотя с другой стороны я ведь не собираюсь переверстывать все модули и компоненты Joomla!, но сейчас не об этом...
Google, конечно, всё ещё не доволен тем что у нас куча правил boostrap`а, и font awesome, которые мы не используем, но по-моему это достойно игнора. Кэширование файлов — не поспоришь, но уже написал в Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..
А пока сравним результаты:
Помните, что у нас было раньше? Так вот тогда результаты запостчены не были, но на самом деле результаты меньше в 2-3 раза!.. Даже отклик от сервера уменьшился, как минимум на треть...
Но нет предела совершенству, будет новый день, новый шаг к ускорению, новый пост...
Автор: Александр Косарев Категория: kosarev.by Опубликовано: 05 февраля 2014