Подтвердить что ты не робот

Dns prefetch/pre-resolve имя хоста - насколько эффективно?

Я читал о том, как это работает, но я пытаюсь понять это.

Из того, что я могу сказать, установил ли я <link rel="dns-prefetch" href="//ajax.googleapis.com" /> в начале моей веб-страницы, я должен увидеть более быстрое завершение запроса, я ссылаюсь на любые активы в этом домене. [ref]

Теперь есть две проблемы, которые в настоящее время беспокоят меня:

1) Помогает ли это только для будущих запросов страницы

Что я имею в виду, если я использую Google CDN для получения jQuery на каждой странице моего сайта, добавит <link /> выше любой разницы? Или это поможет, если, скажем, я не ссылаюсь на CDN на моей домашней странице, но на всех остальных страницах? В этом втором варианте пользователь попадет на главную страницу, разрешит и кэширует хост DNS, готовый для загрузки на моих страницах контента.

2) Как я могу проверить эффективность этого?

Я полагаю, что если бы я знал ответ на это, у меня было бы лучшее понимание проблемы 1. Я пытаюсь использовать инструменты разработчика Firebug и Chrome и наблюдать за панелями Net и Resources, но я не вижу существенной разницы. Единственная тенденция, которую я вижу, состоит в том, что, если что-либо, для выполнения моего запроса требуется больше времени, когда я использую <link />!!

Я прочитал документацию на MDN и блог Chromium (оба старые!), но я все еще просто не понимаю.

Любая помощь будет оценена - спасибо!

ОБНОВЛЕНИЕ - 22/01/2013

Просто прочитайте еще немного об этой проблеме и подумайте, что я должен включить ссылки для людей с этим же вопросом. csswizardry написал отличную статью о производительности, в которой он ссылается на эту проблему и ссылается на больше исследований от perfplanet. Если у кого-то есть дополнительная информация/понимание, добавьте ответ!

Это ссылка на другой, более свежий вопрос SO - надеюсь, это поможет людям найти ответы, которые они ищут.

4b9b3361

Ответ 1

В первом случае предварительная выборка DNS не поможет при загрузке одного и того же ресурса на каждой странице. Ресурс должен быть кэширован при последующих запросах, поэтому предварительная выборка записи dns не будет иметь никакого эффекта.

Во втором случае просто удалить и добавить элемент link недостаточно, чтобы проверить эффект предварительной выборки. Даже без элемента ссылки браузер сканирует hrefs, чтобы определить, какие домены для предварительной выборки - тег ссылки предназначен для того, чтобы сообщить ему предварительно выбрать домен в дополнение к тем, который обнаружит браузер, - это полезно в том случае, если вы знаете ссылку в один домен в конечном итоге перенаправляется на другой.

Одним из способов увидеть эффект тега prefetch будет создание нескольких сайтов. www.example.com/index.html будет содержать ссылку на www.anotherexample.com, которая, в свою очередь, будет перенаправлена ​​на сайт www.athirdsite.com. Если бы вы тестировали эту конфигурацию с помощью тега ссылки и без него, указывающего на сайт www.athirdsite.com, вы можете увидеть, что с тегом ссылки он быстрее. Вы, скорее всего, увидите этот эффект, если используемый сервер имен имеет высокую задержку.

В заключение я просто позволю браузеру делать то же самое, если у вас нет особых причин для инструктирования его сделать что-то еще.