prefetchDNS
Canary
Функция prefetchDNS в настоящее время доступна только в каналах Canary и экспериментальных каналах React. Подробнее о каналах выпуска React см. здесь.
prefetchDNS позволяет вам получить IP-адрес сервера, с которого ожидается загрузка ресурсов.
prefetchDNS("https://example.com");
Справочник
prefetchDNS(href)
Для поиска хоста вызовите функцию prefetchDNS из react-dom.
import { prefetchDNS } from 'react-dom';
function AppRoot() {
prefetchDNS("https://example.com");
// ...
} Функция prefetchDNS предоставляет браузеру подсказку о том, что он должен найти IP-адрес указанного сервера. Если браузер решит это сделать, это может ускорить загрузку ресурсов с этого сервера.
Параметры
-
href: строка. URL сервера, к которому вы хотите подключиться.
Возвращаемое значение
prefetchDNS ничего не возвращает.
Примечания
- Несколько вызовов
prefetchDNSс одним и тем же сервером имеют тот же эффект, что и один вызов. - В браузере вы можете вызвать
prefetchDNSв любой ситуации: во время отрисовки компонента, в эффекте, в обработчике событий и так далее. - При рендеринге на стороне сервера или при рендеринге Server Component
prefetchDNSоказывает эффект только если вы вызываете его во время рендеринга компонента или в асинхронном контексте, происходящем от рендеринга компонента. Любые другие вызовы будут проигнорированы. - Если вам известны конкретные необходимые ресурсы, вы можете вызвать другие функции, которые начнут загружать ресурсы сразу.
- Нет смысла предварительно загружать тот же сервер, с которого размещается сама веб-страница, так как он уже найден к тому моменту, когда будет дана подсказка.
- По сравнению с
preconnect,prefetchDNSможет быть лучше, если вы спекулятивно подключаетесь к большому количеству доменов, в этом случае накладные расходы на предварительные подключения могут перевесить выгоду.
Использование
Предварительная загрузка DNS при отрисовке
Вызовите prefetchDNS при рендеринге компонента, если вы знаете, что его дочерние элементы будут загружать внешние ресурсы с этого хоста.
import { prefetchDNS } from 'react-dom';
function AppRoot() {
prefetchDNS("https://example.com");
return ...;
} Предварительная загрузка DNS в обработчике событий
Вызовите prefetchDNS в обработчике событий перед переходом на страницу или состояние, где потребуются внешние ресурсы. Это запускает процесс раньше, чем если вы вызовете его во время отрисовки новой страницы или состояния.
import { prefetchDNS } from 'react-dom';
function CallToAction() {
const onClick = () => {
prefetchDNS('http://example.com');
startWizard();
}
return (
<button onClick={onClick}>Start Wizard</button>
);
}
© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://18.react.dev/reference/react-dom/prefetchDNS