Веб-шрифти або локально завантажені шрифти?


98

З тих пір, як виникли проблеми з використанням Cufon, я наважився не використовувати зовнішні ресурси шрифту, але, як пізно, я шукав альтернативні методи завантаження шрифтів, щоб побачити, чи є кращий спосіб; кращі методи мають спосіб просто проявитись із синього боку.

Існує багато нових методів, і варіантів для кожного методу здається; Чи варто використовувати typekit ? або google webfonts (з js або css)? чи варто продовжувати використовувати локально завантажувані шрифти (наприклад, метод, створений fontsquirrel.com)?

Я перерахую методи, які здаються найбільш добре отриманими нижче, з деякими тестами, але чи дійсно варто перейти на веб-шрифт? Здається, він би переносив більшу завантаженість ресурсів (http-запити) та мав менше типів файлів (менше сумісності) тощо.

  1. Це лише питання ситуації та потреби? Якщо так, то що вони?
  2. Чи існують різкі відмінності між цими методами?
  3. Чи є кращий метод, який я там не перелічив?
  4. Які виробники / проти є ефективними? Подивіться? залежності? сумісність?

Я дійсно шукаю тут найкращих практик, продуктивність - це велика річ, але це масштабність та простота використання. Не кажучи вже про те, щоб виглядати і відчувати.


Google CSS

  • використовує лише зовнішні таблиці стилів
  • використовує лише найменший сумісний тип файлу
  • Ви можете використовувати @importабо <link>брати вміст стилів ( @font-face) та вкладати його безпосередньо у свій власний таблицю стилів.

результати тесту

  78ms load of html
  36ms load of css

введіть тут опис зображення


Метод Google JS

  • використовує webfont.jsдля завантаження таблиці стилів
  • використовує лише найменший сумісний тип файлу
  • додає :rootелемент з класом
  • додає сценарій до голови.

результати тесту

    171ms load of html
    176ms load of js
    32ms load of css

введіть тут опис зображення


Метод типукіта

  • додає :rootелемент з класом.
  • може використовувати *.jsфрагмент або завантажений зовні файл *.jsфайлу
  • використовує data:font/opentypeзамість файлу шрифту.
  • додає сценарій до голови
  • додає вбудований css до голови
  • додає зовнішню таблицю стилів до голови

    Ви можете легко додавати / видаляти / коригувати шрифти та націлені вибрані з typekit.com

результати тесту

  169ms load of html
  213ms load of js
  31ms load of css
  3ms load of data:font/

введіть тут опис зображення


... і метод шрифтової білки

@font-face{
    font-weight:400;
    font-style:normal;
    font-family:open_sanslight;
    src:url(../font/opensans-light-webfont.eot);
    src:url(../font/opensans-light-webfont.eot?#iefix) format(embedded-opentype),
        url(../font/opensans-light-webfont.woff) format(woff),
        url(../font/opensans-light-webfont.ttf) format(truetype),
        url(../font/opensans-light-webfont.svg#open_sanslight) format(svg)
}

… Або з даними: метод шрифту…

@font-face {
    font-family: 'open_sanslight';
    src: url('opensans-light-webfont-f.eot');
}

@font-face {
    font-family: 'open_sanslight';
    src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAF4sABMAAAAArXQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcZLn0KkqwK44Jq866WBSpzpsNY2IyGAhoJFBbYjuxmyns5sNa4NwldcJ7eh3Uy5gQkURIlqWzONe3HcLsDX1x/+jifDXvbzgTBjopZElndil3hJkERJkmRJkVRJk3TJkEzJkmzOc4HLXOEOF7nEX/*thisisnotafullencodingjustanexample*/bZwUnK4yS3JlTx2Sr4USKEUSbHVX9fcGNBs4fqgw+GoNHU7lKr36Eqn0lCWt6pHFpWaUlc6lS6loSxRlirLlP/uuU01dVfT7L6gPxyqraluCpgj3WtqeC1V4VBDW2N4K1r1esw/IupKp9L1FwlqnuIAAAB42j3NvQ7BUBjG8R5tTz/0u2UjNTTESYQbMGmXLiISbeI6zBYjbuWtye7CeMJxtuf3LP8ne1+IXbWa7G3TMXZru4qLZkJRW1O2wzi3I+Li2Gik5yXpYkNGXj70YU98YQLGHxwwXxIWwO8SNmAdJBzAXku4gFNI9AF38QMjTwZ9vN6yJzq9OoEB6I8VQzDYK0ZguFKMwWiumIDxTDEFk6liBqaF4gDMFFvKxAfOxFUGAAABUxSL9gAA) format('woff'),
         url('opensans-light-webfont-f.ttf') format('truetype'),
         url('opensans-light-webfont-f.svg#open_sanslight') format('svg');
    font-weight: normal;
    font-style: normal;

}

4
Це приємне запитання.
дачі

1
Я не впевнений, чи це найкращий метод, але я завжди використовую Google CSS так<link href='http://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet'>
lefoy

Я розробив такий веб-сайт, як font-squirrel, лише для місцевих Georgianвеб-шрифтів. Я використовую метод font-squirrel, і я хотів би бачити чудову відповідь і на це питання.
дачі

1
Це дуже приємна стаття про те, як декларувати бронезахисні @font-faceдекларації, можливо, ви можете знайти корисну інформацію. paulirish.com/2009/bulletproof-font-face-implementation-syntax
lefoy

Я можу розпочати щедрість, коли буде доступна для кращих / вдосконалених відповідей, якщо ви не приймете її до тих пір.
Давіт

Відповіді:


34

По-перше, я проясню щось про пропозицію Google. Він фактично завантажить найменший формат, з яким може працювати ваш браузер. WOFF пропонує невеликі розміри файлів, і ваш браузер підтримує його, тож це той, який ви бачите. WOFF також досить широко підтримується. Однак, наприклад, в Opera, ймовірно, ви отримаєте версію шрифту TrueType.

Логіка розміру файлу також, я вважаю, чому Font Squirrel приміряє їх у такому порядку. Але це здебільшого міркування з мого боку.

Якщо ви працюєте в середовищі, коли кожен запит і байт нараховується, вам доведеться зробити кілька профілів, щоб з’ясувати, що найкраще підходить для вашого випадку використання. Чи люди переглядатимуть лише одну сторінку, і більше ніколи не відвідуватимуть її? Якщо так, правила кешування не мають великого значення. Якщо вони переглядають або повертаються, Google може мати кращі правила кешування, ніж ваш сервер. Чи більша проблема затримки чи пропускна здатність? Якщо затримка, націліть на меншу кількість запитів, тому розміщуйте їх локально та комбінуйте файли якомога більше. Якщо пропускна здатність, перейдіть за залежністю від найменшого коду та найменшого формату шрифту.

Тепер, про розгляд CSS проти JS. Давайте розглянемо наступний фрагмент HTML:

<head>
    <script type="text/javascript" src="script1.js"></script>
    <link rel="stylesheet" type="text/css" href="style1.css" />
    <style type="text/css">
        @import url(style2.css);
    </style>
    <script type="text/javascript">
        (function() {
            var wf = document.createElement('script');
            wf.src = 'script2.js';
            wf.type = 'text/javascript';
            wf.async = 'true';
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(wf, s);
        })();
    </script>
</head>

У багатьох випадках script1, style1і style2буде блокування. Це означає, що браузер не може продовжувати відображати документ до тих пір, поки цей ресурс не завантажиться (хоча сучасні веб-переглядачі трохи не зміцнюють це). Що насправді може бути хорошою справою, особливо з таблицями стилів. Це запобігає спалаху нестильованого вмісту, а також запобігає гігантським зрушенням, які відбулися б при застосуванні стилів (а зміщення вмісту дійсно дратує користувача).

З іншого боку, script2це не буде блокувати. Він може бути завантажений пізніше, і браузер може перейти до розбору та відображення решти документа. Тож це теж може бути корисним.

Говорячи конкретно про шрифти (і навіть конкретніше, про пропозицію Google), я б, мабуть, дотримувався методу CSS (мені подобається, @importтому що він продовжує стилювати таблицю стилів, але це міг бути лише я). Файл JS, завантажений сценарієм ( http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js ), більший за @font-faceдекларацію, і виглядає просто набагато більше. І я не вірю, що завантаження власне шрифту (WOFF чи TTF) блокується, тому не слід занадто сильно затримувати речі. Я особисто не є великим шанувальником CDN, але факт полягає в тому, що вони дійсно швидкі. Сервери Google збивають більшість спільних планів хостингу шляхом зсуву, і оскільки їхні шрифти настільки популярні, люди можуть навіть їх вже кешувати.

І це все, що я маю.

Я не маю досвіду роботи з Typekit, тому я не залишив це теоретизацію. Якщо є якісь неточності, не враховуючи узагальнень між браузерами заради аргументів, будь ласка, вкажіть їх.


Я вважав, що більша частина цього може бути ситуативною, але ви також добре зауважте щодо питань блокування та FOUT. Я читаю тут: paulirish.com/2009/fighting-the-font-face-fout & stevesouders.com/blog/2009/10/13/font-face-and-performance . Я пройду кілька тестів і опублікую різниці в ефективності сьогодні ввечері. Дякую за чудове розуміння.
дарчер

11

Думаю, ви дуже добре вирішили питання завантаження. З моєї точки зору, є кілька джерел, які слід додати до списку, та кілька інших міркувань, які слід вивчити, щоб отримати повний огляд варіантів.


Деякі інші авторитетні джерела шрифту

хмара. типографіка

http://www.typography.com/cloud/

З того, що я можу сказати, шрифти вбудовуються як дані у файл CSS:

@font-face{ 
    font-family: "Font Name"; 
    src: url(data:application/x-font-woff;base64,d09GRk9UVE8AACSCAA0AAAAARKwAAQAAAAAiVAAAAi4AAAadAAAAAAAAAABDRkYgAAAIyAAAFCgAABmIK5m+CkdERUYAABzwAAAAHQAAACAAXQAER1BPUwAAHRAAAAQlAAAYAq+OkMNHU1VC ... ); 
    font-weight:400; font-style:normal; 
} 

Ось мої характеристики:

94ms load of css from their server
37ms load of css from our server (will vary based on your configuration)
195ms load of data:fonts from our server (will vary based on your configuration)

Ось їх дуже високий рівень опису їх розгортання .

Fonts.com

Я не користувався цією послугою, але вони дуже відомий постачальник шрифтів, і інформація, яку вони перелічили на своєму сайті, є вражаючою. Я не маю специфікацій щодо їх точних методів, але ось що я знаю, вони мають:

  • Деякі з найвідоміших шрифтів у світі
  • Справді велика бібліотека шрифтів (понад 20 000)
  • Завантаження шрифтів на робочому столі для створення макетів
  • Спеціальний інструмент для тестування веб-шрифтів у браузері
  • Елементи тонкого друку та підмножини
  • Варіанти самостійного розміщення

FontSpring

Партнерство з FontSquirrel. Шрифти можна придбати тут за фіксованою ціною. Файли шрифтів доставляють супровідний CSS для розгортання на власному сервері, як і FontSquirrel.


Розширені характеристики

Щодо загальних плюсів і мінусів кожної служби шрифтів, ось декілька порівнянь:

Розмір бібліотеки шрифтів

  • Fonts.com : 20 000+
  • Шрифт : 1000+
  • Шрифт : 300+
  • Google : 600+
  • Typekit : 900+
  • Typography.com (cloud.typography.com): ймовірно, 300+ (35 сімей)

Ціноутворення

  • Fonts.com : $ 20 на місяць для 500 000 переглядів сторінок
  • FontSpring : варіюється за шрифтом ( разова покупка шрифтів)
  • Шрифт : Безкоштовно
  • Google : безкоштовно
  • Typekit : $ 4 на місяць для 500 000 переглядів сторінок
  • Typography.com : 12,50 дол. США на місяць за 1 000 000 переглядів сторінок

Якість шрифту

Якість веб-шрифтів може досить різнитися. Це може охоплювати такі речі, як самі бланки літер або інтервал чи розмір набору символів. Все це визначає загальне враження про якість, яке надасть шрифт. Хоча у безкоштовних варіантів є кілька хороших варіантів, вони також мають деякі шрифти, які не настільки якісні, тому ви хочете ретельно вибирати з цих джерел.

  • Fonts.com : Високий
  • FontSpring : змішаний до високого
  • Шрифт білки : змішаний
  • Google : змішаний
  • Typekit : Високий
  • Typography.com : Дуже високий (я даю це позначення "дуже високий", оскільки Fonts.com, FontSpring та Typekit підтримують кілька типів ливарних цехів, де це лише шрифти від ливарного цеху H&FJ, який є одним з найкращих у світі)

Якість шрифту II: Типографія

У типографії на робочому столі багато вдосконалень, яких дуже важко отримати у веб-шрифтах. Деякі з цих послуг пропонують способи їх доставки.

  • Fonts.com : кернінг, розміщення літер , лігатури, альтернативні символи, дроби тощо.
  • Шрифт шрифту : Ні
  • Шрифт : Білка
  • Google : Ні
  • Typekit : Ні
  • Typography.com : маленькі шапки, лігатури, альтернативні символи, альтернативні стилі чисел, дроби тощо.

Підтримка браузера

В основному це зводиться до форматів шрифтів, які підтримуються кожною службою. Основні з них:

  • EOT: для Internet Explorer (IE 4+)
  • TrueType і OpenType: традиційні формати (Safari 3.1+, FF 3.5+, Opera 10+)
  • WOFF: Новий стандарт для веб-шрифтів (FF 3.6+, Chrome 5+)
  • SVG: IOS <4.2

Додаткову інформацію можна знайти у програмі @ Font-Face Правило та корисних прийомах веб-шрифтів

Усі ці сервіси підтримують основні формати шрифту. Використовуючи власні розміщені шрифти, якщо ви використовуєте правильний синтаксис, ви повинні бути охоплені. Ось оновлення бронезахисного синтаксису в 2011 році від FontSpring :

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff') format('woff'), /* Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
  }

Продуктивність I: Завантаження

Наскільки я розумію, використання вищевказаного синтаксису дозволяє браузерам захоплювати певний формат, який працює для них, тому немає завантажених завантажень у формати шрифтів, які не працюють.

Платні послуги, такі як Fonts.com, Typekit або Typography.com, використовують методи виявлення правильного формату, а потім доставляють потрібний формат шрифту, часто як базові дані у файлі CSS.

З того, що я бачу, відмінності в перерахованих вище методах досить незначні для користувачів швидкісного Інтернету (здається, різниця <200 мс), але може бути варто розглянути для пристроїв у повільніших мережах, особливо для некешованих звернень сторінок.

Виконання II: Підмножина

Якщо ви знаєте, що будуть лише певні символи, які ви хочете використовувати, ви можете створити свій шрифт із підмножиною символів і таким чином зменшити розмір завантаження.

  • Fonts.com : Дуже детальний контроль
  • FontSpring : може перекомпілюватись як підмножина через генератор веб-шрифтів FontSquirrel
  • FontSquirrel : Може перекомпілюватись як підмножина через генератор webfont
  • Google : Дуже детальний контроль
  • Typekit : обмежені параметри "всіх символів" або "за замовчуванням"
  • Typography.com : Дуже детальний контроль

Виконання III: Доставка

  • Fonts.com : глобальний CDN або власний сервер
  • FontSpring : На основі вашого сервера
  • FontSquirrel : На основі вашого сервера
  • Google : глобальний супер-CDN
  • Typekit : Global CDN
  • Typography.com : Global CDN (125 000 серверів)

Мовна підтримка

  • Fonts.com : 40 мов, включаючи азіатську та близькосхідну
  • FontSpring : західний, залежно від шрифту
  • FontSquirrel : Western, залежно від шрифту
  • Google : Western, залежно від шрифту
  • Typekit : Western, залежно від шрифту
  • Typography.com : західний, залежно від шрифту

Тестування та впровадження

  • Fonts.com : Дуже легко, з широкими та налаштованими інструментами
  • FontSpring : Технічний (зробіть це самостійно)
  • FontSquirrel : Технічний (зробіть це самостійно)
  • Google : Легко
  • Typekit : Легко
  • Typography.com : Легке тестування, трохи більше, що потрібно змінити після розгортання

Це не відповідає на питання ОП. Він просто порівнює кілька веб-шрифтів.
stackErr

Це найінформативніший для кожного постачальника, дякую за всю цю інформацію!
дарчер

10

Ну, як ти після

... шукаючи кращих практик тут, продуктивність - це велика річ, але це масштабність та простота використання. Не кажучи вже про те, щоб виглядати і відчувати.

відповідь така (як завжди у веб-дизайні): Це залежить!

Однозначно, що я не рекомендував би використовувати підхід JS (показаний у вашому другому прикладі).

Особисто мені не подобається робити презентаційні речі та стилі CSS залежно від Javascript, хоча у переважної більшості користувачів це включено. Це питання не змішувати речі.

І як ви бачите у наведеному прикладі, є якийсь FOUC (спалах нестильованого вмісту), оскільки сторінка браузером вже надається до появи шрифту. Як тільки вона з’являється, сторінка переробляється. І чим більше сайт, тим більший (ефективність) вплив!

Тому я ніколи не використовую жодне рішення JS для вбудовування шрифтів.

Тепер давайте розглянемо чисті методи CSS.
Оскільки вже досить давно є дискусія про "проти @import". Особисто я волію уникати використання @import і завжди використовувати <link>лише. Але це головним чином питання особистих уподобань. Єдине, що ви ніколи не повинні робити, це змішувати їх обох!

Local vs. CDN
Якщо вирішувати, чи потрібно розміщувати файли шрифтів локально або використовувати CDN, то, головним чином, це залежить від кількості різних шрифтів та відповідних шрифтів, які ви хочете вставити.

Чому це важливо чи грає певну роль?
З точки зору продуктивності, я рекомендую включити шрифт Base64, закодований у ваш (один) аркуш стилів. Але лише формат .woff, оскільки цим користуються майже всі сучасні браузери, що означає для більшості відвідувачів. Для всіх інших користувачів живуть з додатковим запитом.

Але через "накладні витрати", спричинені кодуванням Base64, та розмір файлу шрифту (навіть у форматі .woff) цю техніку слід використовувати лише у тому випадку, якщо у вас не більше 3-х та 4-х різних шрифтів. І завжди переконайтеся, що ваш сервер доставляє файли (CSS) gzip'ed.

Великою перевагою цього є те, що у вас немає додаткового запиту на файл шрифту. І після завантаження першої сторінки (незалежно від того, яка сторінка вашого сайту) файл CSS кешується. Це також є перевагою, якщо ви використовуєте кеш додатків HTML5 (що ви точно зробите).

Окрім того, що автор не повинен використовувати більше, ніж максимум 3 чи 4 різних шрифтів на своєму сайті, давайте розглянемо метод використання CDN Google.

Перш за все, пам’ятайте, що ви можете (і завжди повинні) включати всі бажані шрифти в один єдиний <link>, наприклад:

<link href='http://fonts.googleapis.com/css?family=PT+Serif:400,700,400italic,700italic|PT+Sans:400,700,400italic,700italic|Montez' rel='stylesheet' type='text/css'>

Це призведе до такої відповіді:

@font-face {
  font-family: 'Montez';
  font-style: normal;
  font-weight: 400;
  src: local('Montez'), local('Montez-Regular'), url(http://themes.googleusercontent.com/static/fonts/montez/v4/Zfcl-OLECD6-4EcdWMp-Tw.woff) format('woff');
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  src: local('PT Sans'), local('PTSans-Regular'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v6/LKf8nhXsWg5ybwEGXk8UBQ.woff) format('woff');
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v6/0XxGQsSc1g4rdRdjJKZrNBsxEYwM7FgeyaSgU71cLG0.woff) format('woff');
}
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v6/PIPMHY90P7jtyjpXuZ2cLD8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
}
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 700;
  src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v6/lILlYDvubYemzYzN7GbLkHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
}
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 400;
  src: local('PT Serif'), local('PTSerif-Regular'), url(http://themes.googleusercontent.com/static/fonts/ptserif/v6/sDRi4fY9bOiJUbgq53yZCfesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 700;
  src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://themes.googleusercontent.com/static/fonts/ptserif/v6/QABk9IxT-LFTJ_dQzv7xpIbN6UDyHWBl620a-IRfuBk.woff) format('woff');
}
@font-face {
  font-family: 'PT Serif';
  font-style: italic;
  font-weight: 400;
  src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://themes.googleusercontent.com/static/fonts/ptserif/v6/03aPdn7fFF3H6ngCgAlQzBsxEYwM7FgeyaSgU71cLG0.woff) format('woff');
}
@font-face {
  font-family: 'PT Serif';
  font-style: italic;
  font-weight: 700;
  src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://themes.googleusercontent.com/static/fonts/ptserif/v6/Foydq9xJp--nfYIx2TBz9QFhaRv2pGgT5Kf0An0s4MM.woff) format('woff');
}

Як бачите, є 9 різних файлів шрифтів, що означає загалом 10 (включаючи один із елементів посилання) запитів, якщо користувач не має одного або декількох запитуваних шрифтів, встановлених локально. І ці запити повторюються при кожному новому запиті сторінки на ваш сайт (хоча більше даних не передається)! Також відповідь на запит користувача <link>ніколи не буде кешована.

Рекомендація:
Зрештою, я дійсно рекомендував би включити ваші файли шрифтів у формат .woff Base64, закодовані у вашу таблицю стилів!

Дивіться цю приємну статтю для прикладу та опису, як це зробити!


Дякую купу, шукав це рішення!
кен

3

Я використовую вбудований метод css, оскільки накладні витрати додаткового запиту перевищують збільшення розміру при кодуванні bease64. Це також компенсується компресією gizip сервером файлів css.

Інший варіант - використовувати асинхронне завантаження шрифтів, але найчастіше користувачі бачать, як шрифти з’являються після завантаження.

Незалежно від методу, ви можете зменшити розмір файлу шрифту, включивши лише набори символів, які ви будете використовувати.


Ніяких додаткових накладних витрат, згаданих вище, при використанні HTTP2.
Кріс Гунавардена

1

Особисто я використовую Google Fonts. Вони мають широкий вибір, і останнім часом вони покращили стиснення шрифтів, перейшовши також на стиснення Zopfli . Google прагне зробити Інтернет більш швидким, тому, мабуть, більше оптимізації в цій частині також вийде від них.

Що б ви не вибрали в якості аутсорсингової доставки шрифтів, ви завжди отримаєте зменшення швидкості завдяки запитам на отримання шрифтів. Найкраще, якщо дивитися з точки зору швидкості, було б служити шрифтам самостійно. Якщо ви не піклуєтесь про ті додаткові мілісекунди, які потрібні для завантаження з аутсорсингової доставки, вам слід поступити з цим, якщо ви вважаєте, що простота їх використання стоїть мілісекунд.

Я не знаю про Typekit та інші, але за допомогою Google Fonts можна вибрати певні підмножини та діапазон символів, щоб ще більше пришвидшити доставку.

Вибір підмножини:

<link href="http://fonts.googleapis.com/css?family=Open+Sans&subset=latin" rel="stylesheet">

Вибір діапазону символів:

<!-- Only serve H,W,e,l,o,r and d -->
<link href="http://fonts.googleapis.com/css?family=Open+Sans&text=HelloWorld" rel="stylesheet">

Ви можете використовувати dns-prefetch щоб ще більше покращити швидкість доставки шрифту.

Я думаю і сподіваюся, що Google зробить усе можливе, щоб пришвидшити доставку шрифтів наскільки це можливо. Мілісекунди, необхідні для їх завантаження, не шкодять моєму веб-сайту, тому я із задоволенням використовую їх.

Довга історія:

Якщо доставка шрифту за кілька мілісекунд зашкодить вашому сайту, наприклад, змусивши його завантажити більше, ніж рекомендовано за 1 секунду, я думаю, ви повинні влаштувати їх самостійно.


1
Хороший момент у тому, що <link rel=dns-prefetch href='//fonts.googleapis.com'>я використовую це для аналітики, теплового картографування та субдоменів, чомусь він не зареєструвався для запуску для зовнішніх веб-шрифтів. І час завантаження сильно відрізняється від шрифту до шрифту, я вважаю, що якщо ви використовуєте досить популярний шрифт (може бути кешований) або вибираєте лише декілька шрифтів, використання веб-шрифтів є чудовим досить швидким джерелом шрифту. Невдовзі я опублікую тести на швидкість.
дарчер

1

Найкращі варіанти - імпорт шрифтів за допомогою ajax, саме так:

<script>
    (function() {
        var font = document.createElement('link'); 
        font.type = 'text/css'; 
        font.rel = 'stylesheet';
        font.href = '/url/to/font.css';
        var s = document.getElementsByTagName('link')[0]; 
        s.parentNode.insertBefore(font, s);
      })();
</script>

Я роблю це на своїй веб-сторінці і збільшую 9 балів у тесті Google Insights.


Цікаво. Мені доведеться розглянути PageSpeeds за допомогою цього методу.
дарчер

2
Що з asyncатрибутом? Це робить те саме.
Тимек,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.