Lớp học lập trình này cho bạn biết cách tải trước phông chữ web bằng rel="preload"
để xoá mọi văn bản flash chưa được định kiểu (FOUT).
Đo
Trước tiên, hãy đo lường hiệu suất của trang web trước khi thêm bất kỳ hoạt động tối ưu hoá nào.
- Để xem trước trang web, hãy nhấn vào View App (Xem ứng dụng), sau đó nhấn vào Fullscreen (Toàn màn hình).
- Nhấn tổ hợp phím "Control+Shift+J" (hoặc "Command+Option+J" trên máy Mac) để mở Công cụ cho nhà phát triển.
- Nhấp vào thẻ Lighthouse.
- Đảm bảo bạn đã chọn hộp đánh dấu Hiệu suất trong danh sách Danh mục.
- Nhấp vào nút Tạo báo cáo.
Báo cáo Lighthouse được tạo sẽ hiển thị cho bạn trình tự tìm nạp tài nguyên trong mục Độ trễ đường dẫn tới hạn tối đa.
Trong quy trình kiểm tra ở trên, phông chữ trên web nằm trong chuỗi yêu cầu quan trọng và được tìm nạp sau cùng. Chuỗi yêu cầu quan trọng thể hiện thứ tự tài nguyên được trình duyệt ưu tiên và tìm nạp. Trong ứng dụng này, phông chữ web (Pacfico và Pacifico-Bold) được xác định bằng quy tắc @font-face và là tài nguyên cuối cùng được trình duyệt tìm nạp trong chuỗi yêu cầu quan trọng. Thông thường, phông chữ web được tải từng phần, nghĩa là chúng sẽ không được tải cho đến khi các tài nguyên quan trọng được tải xuống (CSS, JS).
Dưới đây là trình tự của các tài nguyên được tìm nạp trong ứng dụng:
Tải trước phông chữ trên web
Để tránh bị FOUT, bạn có thể tải trước những phông chữ bắt buộc trên web ngay lập tức. Thêm phần tử Link
cho ứng dụng này ở đầu tài liệu:
<head>
<!-- ... -->
<link rel="preload" href="/assets/Pacifico-Bold.woff2" as="font" type="font/woff2" crossorigin>
</head>
Thuộc tính as="font" type="font/woff2"
yêu cầu trình duyệt tải tài nguyên này xuống dưới dạng phông chữ và giúp ưu tiên hàng đợi tài nguyên.
Thuộc tính crossorigin
cho biết liệu có nên tìm nạp tài nguyên bằng yêu cầu CORS hay không vì phông chữ có thể đến từ một miền khác. Nếu không có thuộc tính này, trình duyệt sẽ bỏ qua phông chữ tải trước.
Vì Pacifico-Bold được sử dụng trong tiêu đề trang, nên chúng tôi đã thêm một thẻ tải trước để tìm nạp thẻ sớm hơn. Bạn không cần tải trước phông chữ Pacifico.woff2 vì phông chữ này tạo kiểu cho văn bản dưới màn hình đầu tiên.
Tải lại ứng dụng và chạy lại ngọn hải đăng. Chọn mục Độ trễ tối đa của đường dẫn tới hạn.
Hãy lưu ý cách Pacifico-Bold.woff2
bị xoá khỏi chuỗi yêu cầu quan trọng. Mã này được tìm nạp trước đó trong ứng dụng.
Với tính năng tải trước, trình duyệt biết rằng trình duyệt cần tải tệp này xuống sớm hơn. Điều quan trọng cần lưu ý là nếu không được sử dụng đúng cách, tải trước có thể gây ảnh hưởng xấu đến hiệu suất bằng cách đưa ra các yêu cầu không cần thiết cho những tài nguyên không được sử dụng.