Google PageSpeed Insights с несколькими файлами CSS
Я оптимизирую свой сайт на основе Google PageSpeed Insights. Он рекомендует мне "оптимизировать доставку CSS" для нескольких файлов (имена упрощены, например):
<link rel="stylesheet" href="css/app.css" type="text/css">
<link rel="stylesheet" href="css/responsive.css" type="text/css">
<link rel="stylesheet" href="css/styles.css" type="text/css">
... перемещая их из <link>
тегов в <head>
в вызываемый через JavaScript перед закрывающим тегом:
<script>
var cb = function() {
var l = document.createElement('link'); l.rel = 'stylesheet';
l.href = 'css/app.css';
var h = document.getElementsByTagName('head')[0]; h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);
</script>
</body>
Как вы можете видеть, только app.css
вызывается.
Мой вопрос в том, есть ли способ добавить все три CSS-файла в этот скрипт?
2 ответа:
Вам нужно будет расширить скрипт Google, чтобы вы могли добавить несколько файлов, таких как:
var loadCSSFiles = function() { var links = ["style1.css", "style2.css", "style3.css"], headElement = document.getElementsByTagName("head")[0], linkElement, i; for (i = 0; i < links.length; i++) { linkElement = document.createElement("link"); linkElement.rel = "stylesheet"; linkElement.href = links[i]; headElement.appendChild(linkElement); } }; var raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame; if (raf) { raf(loadCSSFiles); } else { window.addEventListener("load", loadCSSFiles); }