ПредишенСледващото

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Помислете за съвети и насоки за ресурси (ресурс хакове). Тези инструменти се ускори уеб сайтове и уеб приложения. Нека разгледаме разликите между съвети предварителното натоварване предварително извличане на и предварително свързване. Това ще ви помогне да ги използват успешно. Ето и някои от техните предимства:

1) оптимизиране на ресурсите за доставка;
2) намаляване на размера на забавяне на мрежата;
3) доставят съдържание по-бързо - в даден момент, докато потребителят е страницата за гледане.

1. Директива презареждат

Какво е пренатоварването е различен от предварително извличане на? Предварително зареждане работи с текущата навигация и ресурси с висок приоритет. Prefetch - ресурси от нисък приоритет за следващия навигация. Имайте предвид, че пренатоварването не блокира при зареждане на прозореца-събитие.

1.1. Предимството на директива на натоварването

Ето и някои предимства предварително зареждане директива:

  • Тя позволява на браузъра да се установи приоритет ресурс. че, от своя страна, позволява на уеб разработчиците да оптимизират доставката на ресурси.
  • Тя позволява на браузъра, за да разберете типа на ресурсите. че, от своя страна, дава възможност да се види дали същият ресурс повторна употреба в бъдеще.
  • Позволява на браузъра, за да разберете дали искането е съвместима с политиката на защита на съдържанието в съответствие с като атрибут.
  • Това позволява на браузъра да изпрати съответните приемат заглавията в зависимост от вида на ресурсите (като изображение / WebP).

1.2. примери

Ето един много прост пример за изображение предварително натоварване.

По-долу е пример за предварително зареждане на шрифтове.

Забележка. Когато предварително натоварване на разрешителните CORS-ресурс се нуждае crossorigin атрибут.

1.3. Browser презареждат поддръжка

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

2. предв

Prefetch - нисък приоритет ресурс е подсказка, което позволява да се избере браузъра във фонов режим (в свободното си време) на средствата, които ще бъдат от полза по-късно, и да ги запишете в кеша на браузъра. След като е завършило зареждането, предварително извличане зарежда някои допълнителни ресурси. Когато потребителят натисне предварително извличане-връзката, предварително извличане веднага зарежда контекст. Има три различни вида на предварително извличане, обсъдени по-долу:

1) позоваване;
2) DNS;
3) предварително изобразяване.

Фигура 3 показва четири етапа на изпълнение Референтен предварително извличане.

Етап 2 (Етап 2). Браузърът е предварително извличане-връзка (Browser установи предварително извличане на връзки).

Етап 3 (етап 3). Browser избира исканата съдържание, за да се покаже на екрана на предварително извличане страница. В същото време съдържанието се съхранява в кеш паметта, докато потребителят кликне върху линка. По-долу показва, кеша на браузъра.

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Фиг. стъпка за изпълнение на предварително извличане 3. Четири препратка

2.1. Референтен предварително извличане

Както бе посочено по-горе, справка за предварително извличане позволява на браузъра да изберете ресурсите и да ги съхранявате в кеш паметта. предполага. След това, което потребителят иска за тях. Браузърът търси предварително извличане на HTML таг или в своето име Линк:

  • HTML:
  • HTTP Header: Връзка: ; отн = предварително извличане

Забележка. "Тази техника ще ускори много интерактивни сайтове, но няма да работи винаги и навсякъде, поради следните причини:

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

2.2. DNS предварително извличане

А предварително извличане DNS позволява на браузъра да се изпълнява търсене на DNS на страницата във фонов режим. докато потребителят сърфира в интернет страницата. Това намалява времето за изчакване, тъй като търсенето в DNS вече е извършено, когато потребителят кликне върху линка.

DNS предварително извличане, включени в URL адреса като атрибут на маркера за връзка: отн = »предварително извличане». използваните шрифтове от Google, Google Analytics и CDN.

«DNS-заявките по-бързо, по отношение на честотната лента, но забавяне може да бъде висока, особено в мобилни мрежи. Теоретично DNS предварително извличане може значително да се намали времето за чакане в определени моменти, като например, когато потребителят кликне върху линка. Понякога времето за изчакване може да бъде намалена с цяла секунда. "

Mozilla Developer Network.

Тя се използва и при разпределението на ресурсите. Ето един пример:

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Фиг. 5. DNS предварително извличане 10 Силите за бъдещи изтегляния. В първата колона е името на хоста. Второ - Колко време (чч: мм: сс). трето - Източник

Можете да използвате и Pagespeed-филтър insert_dns_prefetch, което поставя тагове в заглавието на страницата е автоматично за всички домейни, или специализирани услуги, като например Ayri.rf.

За Pagespeed-филтър, вижте. Кратка статия, озаглавена "Пакет Page Speed ​​програма от Google» на Habrahabr

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

2.3. Предварително изобразяване

«Предварително изобразяване Съвет използван от системата за обозначаване на следващите вероятните цели HTML-навигация. В този случай, на потребителския агент ще избере и обработва определен ресурс като HTML-отговор. Но за да изберете друг тип съдържание, или когато предварителна обработка HTML не е желателно, приложението използва различен ред - предварително извличане ».

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Фиг. 7 схематично показва как маркер започва изобрази предварително

Необходимо е повишено внимание с изобразим, той - тежко ресурс и неговата употреба може да доведе до спад в трафик, особено на мобилни устройства.

Фигура 8 показва пример за проверка Предварително изобразяване чрез хром: // нетните вътрешни / # Предварително изобразяване

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Фиг. 8. Пример проверка Предварително изобразяване чрез хром: // нетните вътрешни / # Предварително изобразяване

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Prefetch има някои недостатъци, като например проблеми с неприкосновеността на личния живот.

3. предварително свързване

И накрая, помислете предварително свързване. Предварително свързване позволява на браузъра да се установи връзка преди HTTP-заявка ще бъде изпратена до сървъра. Тази процедура включва DNS заявки, "преговори» TLS и "ръкостискане» TCP. Което от своя страна елиминира забавянето кръгъл и спестява време на потребителите.

«Предварително свързване - важен инструмент за оптимизиране на ... тя елиминира скъпи забавяния кръгово движение на искането. Понякога времето за изчакване на искането е намалена от стотици и дори хиляди милисекунди. "

Иля Grigorik (инж. Иля Grigorik).

Фигура 10 сравнява време DNS / TCP / TLS багажника, използвайки предварително свързване без него. В горната част на фигурата показва времето за изтегляне, без да използвате предварително свързване, равен на 2,6. По-долу - с помощта на предварително свързване, време за зареждане е 2.1 секунди.

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Фиг. 10. Сравнение време DNS / TCP / TLS зареждане с или без предварително свързване

В този конкретен сценарий предварително свързване премахва три кръгови забавяне на критичния път и да се намали времето за чакане на повече от половин секунда.

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Фиг. 11. Пример за предварително свързване с Google шрифтове

Как да се използва предварително натоварване, за предварително извличане на и предварително свързване за ускоряване на сайта

Може би сега осъзнаването, че има предварително зареждане, предварително извличане и предварително свързване, беше малко по-добре. И също така се използва стратегия за ускоряване на доставката на съдържание. Би било хубаво, ако използването на директива на натоварването ще се увеличи през следващите месеци, както и уеб разработчици ще го приемат.

Подкрепете проекта - споделете линка, благодаря!