N202URLВот и наступил час обещанного редизайна, а с ним и начальной отчисти и попытки ускорить наш сайт.
Благодаря энтузиазму девушки получился довольно-таки неплохой дизайн, который претерпер правки во время верстки, но по-моему все это послужило ему на пользу.
Изменения эти в большинстве своем были вызваны тем, что необходимо было оставить все же некоторые элементы, для улучшения 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. Но я всё равно доволен, ведь целью было контролировать набор и порядок подгружаемых скриптов - и тут мы ставим галочку.

 Что касается фишек под капотом, то у нас:

{Less} на стороне клиента, пока что, возможно, в дальнейшем скомпилирую и залью просто css файлом, если увижу в этом неимоверный профит.
jQuery и bootstrap.js по факту пока не используются, но ведь то, что ты только учишься для получения водительских права - не значит, что при покупке машины ты будешь покупать ту, у которой 3 передачи переднего хода. Но не отрицаю, что пока они мертвый груз.

Что касается верстки - сверстаны пока только главные компоненты и модули. Чуть позже сверстаем страницы ошибок, и все до которых можно добраться клацая по линкам. Верстать компоненты которые в жизни не увидят своего применения - не вижу смысла.

А теперь к сладенькому: тестим что у нас получилось.

И того load вышел на 920ms, DOMContentLoaded - 642ms.
И это не лучший результат среди получавшихся!.. И да, я знаю кого винить: AddThis. Функции Share можно запросто написать самому, не будет появляться даже хэша в строке, но пока не могу себя заставить отказаться от них, просто потому, что там куча всего. Хотя с другой стороны я ведь не собираюсь переверстывать все модули и компоненты Joomla!, но сейчас не об этом...

Google, конечно, всё ещё не доволен тем что у нас куча правил boostrap`а, и font awesome, которые мы не используем, но по-моему это достойно игнора. Кэширование файлов — не поспоришь, но уже написал в Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..

А пока сравним результаты:
Помните, что у нас было раньше? Так вот тогда результаты запостчены не были, но на самом деле результаты меньше в 2-3 раза!.. Даже отклик от сервера уменьшился, как минимум на треть...

Но нет предела совершенству, будет новый день, новый шаг к ускорению, новый пост...

Автор: Александр Косарев Категория: kosarev.by Опубликовано: 05 февраля 2014