prefetchDNS
prefetchDNS
cho phép bạn tìm kiếm trước địa chỉ IP của một máy chủ mà bạn dự kiến sẽ tải tài nguyên từ đó.
prefetchDNS("https://example.com");
Tham khảo
prefetchDNS(href)
Để tìm kiếm một máy chủ, hãy gọi hàm prefetchDNS
từ react-dom
.
import { prefetchDNS } from 'react-dom';
function AppRoot() {
prefetchDNS("https://example.com");
// ...
}
Hàm prefetchDNS cung cấp cho trình duyệt một gợi ý rằng nó nên tìm kiếm địa chỉ IP của một máy chủ nhất định. Nếu trình duyệt chọn làm như vậy, điều này có thể tăng tốc độ tải tài nguyên từ máy chủ đó.
Tham số
href
: một chuỗi. URL của máy chủ bạn muốn kết nối.
Giá trị trả về
prefetchDNS
không trả về gì cả.
Lưu ý
- Nhiều lệnh gọi đến
prefetchDNS
với cùng một máy chủ có tác dụng tương tự như một lệnh gọi duy nhất. - Trong trình duyệt, bạn có thể gọi
prefetchDNS
trong mọi tình huống: trong khi hiển thị một component, trong một Effect, trong một trình xử lý sự kiện, v.v. - Trong quá trình render phía máy chủ hoặc khi render Server Components,
prefetchDNS
chỉ có hiệu lực nếu bạn gọi nó trong khi render một component hoặc trong một ngữ cảnh không đồng bộ bắt nguồn từ việc render một component. Bất kỳ lệnh gọi nào khác sẽ bị bỏ qua. - Nếu bạn biết các tài nguyên cụ thể bạn sẽ cần, bạn có thể gọi các hàm khác thay vào đó để bắt đầu tải tài nguyên ngay lập tức.
- Không có lợi ích gì khi tìm nạp trước cùng một máy chủ mà trang web đang được lưu trữ vì nó đã được tìm kiếm vào thời điểm gợi ý được đưa ra.
- So với
preconnect
,prefetchDNS
có thể tốt hơn nếu bạn đang kết nối một cách suy đoán với một số lượng lớn các tên miền, trong trường hợp đó, chi phí của việc thiết lập trước các kết nối có thể lớn hơn lợi ích.
Cách sử dụng
Tìm nạp trước DNS khi render
Gọi prefetchDNS
khi render một component nếu bạn biết rằng các component con của nó sẽ tải tài nguyên bên ngoài từ máy chủ đó.
import { prefetchDNS } from 'react-dom';
function AppRoot() {
prefetchDNS("https://example.com");
return ...;
}
Tìm nạp trước DNS trong một trình xử lý sự kiện
Gọi prefetchDNS
trong một trình xử lý sự kiện trước khi chuyển sang một trang hoặc trạng thái nơi các tài nguyên bên ngoài sẽ cần thiết. Điều này giúp quá trình bắt đầu sớm hơn so với việc bạn gọi nó trong quá trình render trang hoặc trạng thái mới.
import { prefetchDNS } from 'react-dom';
function CallToAction() {
const onClick = () => {
prefetchDNS('http://example.com');
startWizard();
}
return (
<button onClick={onClick}>Start Wizard</button>
);
}