Общей методикой сокращения времени загрузки страниц является параллелизация загрузки нескольких статических ресурсов путем их извлечения из разных имен хостов (даже если все они разрешены на один и тот же сервер).
Однако браузеру необходимо выдать запрос поиска DNS для каждого из этих имен хостов, что может занять значительное время.
Можете ли вы предложить метод, с помощью которого код JavaScript может определять «на ходу» оптимальное количество хостов для параллелизации загрузки ресурсов?Параллельная загрузка ресурсов и скорость поиска DNS
ответ
После того, как вы впервые разрешили заданное имя DNS, имя должно быть кэшировано преобразователем, очень близким к пользователю. Поэтому, если вы хотите получить больше параллельных подключений, просто не используйте полностью случайные серверы вне сети; используйте согласованный набор из пяти или около того разных хостов. Загрузка DNS будет происходить только в первый раз, когда пользователь нападет на ваш сайт (или даже тогда, если кто-то использует один и тот же идентификатор кэширования уже существует) и будет происходить параллельно с загрузкой тела вашей страницы.
JavaScript плохо приспособлен для определения «оптимального» номера, поскольку он не знает, как долго будут выполняться DNS-запросы перед их выпуском.
Существует несколько способов сокращения времени загрузки DNS с разными именами хостов. Один трюк состоит в том, чтобы иметь другие имена хостов в разделе AR ответа DNS; например, если кто-то просит a.example.com, мы можем с пользой сказать им имена хостов DNS для b.example.com, c.example.com, d.example.com и т. д. как дополнительные записи в ответе DNS , давая им IP-адрес для a.example.com в ответе.
Это предварительное кэширование ответов для всех этих имен хостов некоторыми (но не всеми) рекурсивными DNS-серверами (по соображениям безопасности этот трюк не работает ни для одного из рекурсивных DNS-серверов, которые я реализовал, поскольку по соображениям безопасности они не слепо кэшируют записи в разделе AR ответа DNS).
Еще один трюк для минимизации поиска DNS - это иметь все имена в одном домене (все имена заканчиваются, например, example.com: a.example.com, b.example.com и т. Д.). , убедитесь, что для устранения имен не требуются какие-либо глючные записи (сделайте ваши NS-записи такими именами, как ns1.example.com и ns2.example.com, и не используйте записи CNAME), и, если ваши серверы не изменяйте IP-адреса очень часто, имеют большой TTL для записей DNS для ваших серверов.
- 1. Параллельная загрузка
- 2. Адрес времени поиска DNS DNS DNS
- 3. Android WebView: параллельная загрузка, компоновка и Javascript
- 4. Полнотекстовый индекс и скорость поиска
- 5. Параллельная загрузка файла с файлами
- 6. Сбой DNS-поиска
- 7. DNS: Как работают записи ресурсов для авторизационного DNS-сервера?
- 8. DateTime.Now скорость поиска
- 9. Lucene.Net нечеткая скорость поиска
- 10. Grails: ArrayList - скорость поиска
- 11. Solr улучшает скорость поиска
- 12. Скрипач показывает сбой DNS-поиска
- 13. Код для прямого поиска DNS
- 14. Загрузка ресурсов в Java
- 15. Загрузка внешних ресурсов
- 16. Загрузка ресурсов с require.js
- 17. Jmeter параллельная загрузка пользователя План тестирования
- 18. NSStream - ошибка обратного DNS-поиска
- 19. Параллельная загрузка файлов .js через https
- 20. Параллельная загрузка растровых изображений в android
- 21. Эффективная параллельная загрузка Hadoop из внешних источников?
- 22. Загрузка пакетов ресурсов: Spring
- 23. медленная скорость поиска Google API поиска API
- 24. Параметры поиска ресурсов FHIR
- 25. Параллельная загрузка страницы с использованием ajax
- 26. Параллельная загрузка файлов с помощью JMeter
- 27. Низкая загрузка в кеш-скорость
- 28. доступ и загрузка ресурсов по требованию iOS9
- 29. ImageLoader и загрузка изображений из ресурсов приложения
- 30. JavaFX - Пути ресурсов и загрузка изображения
Записи DNS будут кэшироваться после первого раза, так что это не проблема. Является ли намерение обходить ограничение веб-сервера одновременными соединениями? –
Точно (когда обход приведет к более быстрой загрузке страницы) – dpq