Предварительная выборка включена в W3C спецификацию под названием Resource Hints . Он реализован в Firefox, Chrome, IE 11, Edge, Opera после 12.1 и браузере Android начиная с 4.4.4, см. страницу предварительной выборки caniuse для получения дополнительной и актуальной информации.
Также см. Страницы caniuse и spec для связанных технологий (поддерживаемые браузеры впоследствии извлекаются из caniuse и обновляются по состоянию на сентябрь 2015 года):
- Предварительный рендеринг caniuse / spec (IE 11, Edge, Chrome, Opera)
- Предварительное подключение caniuse / spec (Firefox, Chrome 46, Opera 33)
- Предварительная выборка DNS caniuse / spec (IE9 ( см. Примечание ниже ), IE10, любой другой браузер, кроме Opera Mini и, возможно, iOS Safari и браузер Android )
В IE 9 реализована только предварительная выборка DNS, но она называется "prefetch"
(осторожно!). Некоторое время Chrome (по крайней мере, до 2013 года) выполнял только предварительную визуализацию и предварительную выборку DNS. IE11 реализует lazyload
, для изображений; Microsoft пыталась получить это в спецификации, но пока это не так. iCab считается первым браузером, в котором реализована предварительная выборка, хотя это поведение было автоматическим, не контролировалось разметкой.
Историческая справка
Mozilla Application Suite, а затем и Firefox, реализуют спецификацию (спецификация фактически основана на ранней реализации предварительной выборки Mozilla, которая в некоторой степени основывалась на заголовке Link:
, указанном в RFC 2068 , который был заменен RFC 2616 [который не ссылается на заголовок Link:
]. См. эту старую версию документов ( ? ) для более подробной информации. .) Согласно документации по MDN ( ? ):
Предварительная выборка ссылок - это механизм браузера, который использует время простоя браузера для загрузки или предварительной выборки документов, которые пользователь может посетить в ближайшем будущем.
Браузер ищет заголовок HTML <link>
или HTTP Link:
с типом отношения next
или prefetch
.
Итак, синтаксис:
<link rel="prefetch" href="/path/to/prefetch" />
Вы также можете использовать HTTP-заголовок Link:
:
Link: </page/to/prefetch>; rel=prefetch
Или <meta>
для имитации того же заголовка HTTP:
<meta http-equiv="Link" content="</page/to/prefetch>; rel=prefetch">
Обратите внимание, что отношение next
также можно использовать, но его основная функция - указывать «следующую» страницу в навигации, поэтому вы не должны использовать ее для ресурсов или другой информации. Предварительная выборка также выполняется для подключений HTTPS.
iCab
iCab , кажется, ( ? ) реализовали раннюю предварительную выборку около 2001 года. ICab, по-видимому, предварительно выбрал все ссылки на контентные страницы (не ресурсы), не следуя ни намекам разработчика осталось в разметке.