prefetchDNS
讓您可以預先查詢預期將從中載入資源的伺服器的 IP。
prefetchDNS("https://example.com");
參考
prefetchDNS(href)
要查詢主機,請從 react-dom
呼叫 prefetchDNS
函式。
import { prefetchDNS } from 'react-dom';
function AppRoot() {
prefetchDNS("https://example.com");
// ...
}
prefetchDNS 函式會向瀏覽器提供提示,告知其應查詢指定伺服器的 IP 位址。如果瀏覽器選擇這樣做,可以加快從該伺服器載入資源的速度。
參數
href
:字串。您要連線到的伺服器的 URL。
回傳值
prefetchDNS
不會回傳任何值。
注意事項
- 多次使用相同伺服器呼叫
prefetchDNS
的效果與單次呼叫相同。 - 在瀏覽器中,您可以在任何情況下呼叫
prefetchDNS
:渲染元件時、在 Effect 中、在事件處理程序中等等。 - 在伺服器端渲染或渲染伺服器元件時,
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>
);
}