Всем привет!
При проверке скорости сайта goolgle speed insight или gtmertrix нам говорят, что шрифты гугл блокируют содержимое страницы и их необходимо загрузить позже.
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
Делаем все с помощью скрипта fonfaceobserver, который также загружаем асинхронно (весит всего 5 Кб в несжатом виде).
Качаем здесь: https://github.com/bramstein/fontfaceobserver/
Сам скрипт кладем например в папку /JS. Получится, что доступен он по ссылке «ваш сайт»/js/fontfaceobserver.js
Далее в header добавляем вместо ссылки на гугл шрифт (для начала просто закомментируйте его <!— —>)
<!--подключаем шрифт-->
<style>
@import url(//fonts.googleapis.com/css?family=Ваш шрифт и начертания);
/* шрифт по умолчанию, до тех пор пока не подгружен новый шрифт */.fonts-loaded {
body {
font-family: Ваш шрифт, sans-serif;
}
}
</style>
<script>
var script = document.createElement('script');
script.async = true;
script.src = 'путь_к_скрипту/fontfaceobserver.js';
script.onload = function () {
// инициализация
var font = new FontFaceObserver('Ваш шрифт');
font.load().then(function () {
document.documentElement.className += " fonts-loaded";
});
};
document.head.appendChild(script);
</script>;
<!---------------------->
Вот и все, вариант рабочий, есть немного другие решения, но хром ругается на ошибки в переменных.
<!--подключаем шрифт-->
<style>
@import url(//fonts.googleapis.com/css?family=Open+Sans:400,400i,300,700&subset=cyrillic,latin);
/* шрифт по умолчанию, до тех пор пока не подгружен новый шрифт */.fonts-loaded {
body {
font-family: Open Sans, sans-serif;
}
}
</style>
<script>
var script = document.createElement('script');
script.async = true;
script.src = 'js/fontfaceobserver.js';
script.onload = function () {
// инициализация
var font = new FontFaceObserver('Open Sans');
font.load().then(function () {
document.documentElement.className += " fonts-loaded";
});
};
document.head.appendChild(script);
</script>
<!---------------------->
Все работает быстро и асинхронно.
Всем добра и чтоб росла борода!))
Всем привет! Недавно начал баловаться видеомонтажом для роликов в ютуб и соцсети. Честно, много искал…
Всем привет!Новый день - новая задача: В последнее время стало появляться много чатов открытых с…
Всем привет!Пишу крайне редко, а жаль, есть что написать но времени как обычно....Ну да ладно,…
Всем привет! Каждый раз разворачивая сайт для себя или кого-то на worpdress или opencart или…
Всем привет! Возникла идея и задача: чтобы привлечь подписчиков на сайте запустили опрос-исследование для профессиональных…
Всем привет! Недавно озадачился поисками бесплатных ресурсов для размещения телеграмм бота (решил поиграть попробовать) и…