Để theo dõi, tôi đã kết thúc bằng cách sử dụng các tùy chọn nâng cao của trình tạo khuôn mặt @ phông chữ để tập hợp các phông chữ của mình, vì vậy tôi chỉ tải các ký tự cần thiết.
Một trong các tùy chọn là Base64 mã hóa các phông chữ (cho phép tôi nhúng chúng vào tệp CSS của mình). Nếu bộ nhớ phục vụ, Base64 mã hóa .woff
và .ttf
phông chữ.
Mặc dù tôi muốn hỗ trợ càng nhiều người dùng càng nhiều trình duyệt càng tốt, tôi đã quyết định rằng nó không đáng để làm chậm người dùng các trình duyệt hiện đại với dữ liệu thừa, có khả năng dư thừa, vì vậy tôi đã sử dụng Modernizr (sử dụng yep / nope.js) để tải không đồng bộ một CSS
tệp riêng biệt với các tham chiếu đến tất cả các định dạng phông chữ theo cú pháp mặt chữ chống đạn cứng .
Tôi đã chuyển qua lại giữa Base64 mã hóa .woff
phông chữ và bao gồm phần còn lại của các khai báo phông chữ trong CSS
tệp chính hoặc chỉ bao gồm Base64 được mã hóa .woff
trong tệp chính CSS
và sau đó bao gồm các định dạng khác trong CSS
tệp mà tôi đã tải không đồng bộ qua Modernizr.load
.
Tôi thích thời gian tải nhanh hơn tính thẩm mỹ vì vậy FOUC không phải là mối quan tâm lớn nhưng tôi sẽ lưu ý rằng hầu hết các trình duyệt sẽ "nhấp nháy" trên các phông chữ khi chúng được tải (đó là sau khi phông chữ được mã hóa Base64 CSS
được tải) không đồng bộ.
Về mặt tích cực, một khi các phông chữ được tải và lưu trữ trong bộ đệm (các tiêu đề hết hạn dài được đặt trên máy chủ), 'nháy mắt' đã bị loại bỏ và tôi có thể tải các bộ phông chữ mở rộng để người dùng nói các ngôn ngữ khác (và sử dụng Tiện ích dịch Google được bao gồm) vẫn sẽ thấy văn bản cách điệu.
Vì đây là trang web của riêng tôi, tôi đã có thể thử nghiệm nhưng tôi chủ yếu làm việc đó để "khoe", tôi thận trọng hơn với các trang web của khách hàng.
Một kỹ thuật khác mà tôi đã thực hiện là đặt tất cả các .svg
phông chữ vào một tệp duy nhất và xác định từng phông chữ có ID riêng thay vì đặt từng tệp trong một tệp riêng biệt như trình tạo @ phông chữ tạo ra.