Bạn đã bao giờ muốn cho trình duyệt biết về một phông chữ, tập lệnh hoặc
tài nguyên khác mà trang cần đến mà không trì hoãn thời gian
onload
sự kiện? <link rel="preload">
giúp các nhà phát triển web có thể thực hiện
sử dụng cú pháp phần tử HTML quen thuộc cùng với một vài thuộc tính chính để
xác định hành vi chính xác. Đó là
tiêu chuẩn nháp, tức là vận chuyển theo
Bản phát hành Chrome 50.
Tài nguyên được tải qua <link rel="preload">
sẽ được lưu trữ cục bộ trong trình duyệt,
và trơ hiệu quả cho đến khi chúng được tham chiếu trong DOM, JavaScript hoặc
Dịch vụ so sánh giá (CSS). Ví dụ: đây là một trường hợp sử dụng tiềm năng trong đó tệp tập lệnh
đã được tải trước nhưng không được thực thi ngay lập tức như lẽ ra đã có thể
được đưa vào qua thẻ <script>
trong DOM.
<link rel="preload" href="used-later.js" as="script">
<!-- ...other HTML... -->
<script>
// Later on, after some condition has been met, we run the preloaded
// JavaScript by inserting a <script> tag into the DOM.
var usedLaterScript = document.createElement('script');
usedLaterScript.src = 'used-later.js';
document.body.appendChild(usedLaterScript)
</script>
Điều gì sẽ xảy ra ở đây? Thuộc tính href
được sử dụng trong ví dụ đó nên
quen thuộc với các nhà phát triển web, vì đây là thuộc tính chuẩn dùng để chỉ định
URL của bất kỳ tài nguyên được liên kết nào.
Thuộc tính as
là
tuy nhiên, có thể còn mới mẻ và được dùng trong bối cảnh phần tử <link>
để cung cấp cho trình duyệt thêm ngữ cảnh về
đích đến của
đang thực hiện yêu cầu tải trước. Thông tin bổ sung này đảm bảo rằng
trình duyệt sẽ đặt tiêu đề yêu cầu thích hợp, mức độ ưu tiên của yêu cầu cũng như áp dụng
mọi Chính sách bảo mật nội dung có liên quan
có thể dùng để hỗ trợ đúng ngữ cảnh tài nguyên.
Tìm hiểu thêm (rất nhiều)
Yoav Weiss viết
hướng dẫn chính thức
sang sử dụng <link rel="preload">
. Nếu bạn thấy tò mò và muốn bắt đầu sử dụng
trên các trang của mình, thì bạn nên đọc qua bài viết của ông ấy để tìm hiểu thêm về
các lợi ích và trường hợp sử dụng mẫu quảng cáo.
Tạm biệt <link rel="subresource">
<link rel="preload">
thay thế <link rel="subresource">
, vốn có
lỗi và hạn chế đáng kể, và
mà chưa bao giờ được triển khai trong các trình duyệt khác ngoài Chrome. Do đó, Chrome 50
xoá chế độ hỗ trợ cho
<link rel="subresource">
.