Всем привет!
При проверке скорости сайта 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 или…
Всем привет! Возникла идея и задача: чтобы привлечь подписчиков на сайте запустили опрос-исследование для профессиональных…
Всем привет! Недавно озадачился поисками бесплатных ресурсов для размещения телеграмм бота (решил поиграть попробовать) и…