Một lý do là các nhà thiết kế web hiện nay thích sử dụng phông chữ web (thường ở định dạng WOFF ), ví dụ như thông qua phông chữ Google Web .
Trước đây, các phông chữ duy nhất có thể được hiển thị trên một trang web là những phông chữ mà người dùng đã cài đặt cục bộ. Vì người dùng Mac và Windows không nhất thiết phải có cùng một phông chữ, theo bản năng, các nhà thiết kế luôn xác định các quy tắc là
font-family: Arial, Helvetica, sans-serif;
trong đó, nếu phông chữ đầu tiên không được tìm thấy trên hệ thống, trình duyệt sẽ tìm phông chữ thứ hai và cuối cùng là phông chữ "sans-serif" dự phòng.
Bây giờ, người ta có thể cung cấp một URL phông chữ dưới dạng quy tắc CSS để khiến trình duyệt tải xuống một phông chữ, như sau:
@import url(http://fonts.googleapis.com/css?family=Droid+Serif:400,700);
và sau đó tải phông chữ cho một phần tử cụ thể bằng cách:
font-family: 'Droid Serif',sans-serif;
Điều này rất phổ biến để có thể sử dụng phông chữ tùy chỉnh, nhưng nó cũng dẫn đến một vấn đề là không có văn bản nào được hiển thị cho đến khi tài nguyên được trình duyệt tải, bao gồm thời gian tải xuống, thời gian tải phông chữ và thời gian kết xuất. Tôi hy vọng rằng đây là hiện vật mà bạn đang trải nghiệm.
Ví dụ: một trong những tờ báo quốc gia của tôi, Dagens Nyheter , sử dụng phông chữ web cho tiêu đề của họ, nhưng không phải là khách hàng tiềm năng của họ, vì vậy khi trang web đó được tải, tôi thường thấy các khách hàng tiềm năng trước và nửa giây sau tất cả các khoảng trống ở trên được điền với các tiêu đề (điều này đúng với Chrome và Opera, ít nhất là. Đã không thử người khác).
(Ngoài ra, các nhà thiết kế đã rắc JavaScript hoàn toàn ở mọi nơi trong những ngày này, vì vậy có thể ai đó đang cố gắng làm điều gì đó thông minh với văn bản, đó là lý do tại sao nó bị trì hoãn. Tuy nhiên, đó sẽ là một trang web cụ thể bị trì hoãn trong những điều này lần này là vấn đề phông chữ web được mô tả ở trên, tôi tin.)
Thêm vào
Câu trả lời này đã trở nên rất khích lệ, mặc dù tôi không đi sâu vào chi tiết, hoặc có lẽ vì điều này. Đã có nhiều bình luận trong chuỗi câu hỏi, vì vậy tôi sẽ cố gắng mở rộng một chút (rất nhiều ý kiến dường như đã biến mất một thời gian ngắn sau khi chủ đề được bảo vệ - một số người điều hành có thể tự làm sạch chúng). Ngoài ra, đọc các câu trả lời khác trong chủ đề này vì tất cả đều mở rộng theo cách riêng của họ.
Hiện tượng này rõ ràng được gọi là "flash của nội dung chưa được lọc" nói chung và "flash của văn bản chưa được lọc" nói riêng. Tìm kiếm "FOUC" và "FOUT" cung cấp thêm thông tin.
Tôi có thể đề xuất bài đăng của nhà thiết kế web Paul Irish về FOUT liên quan đến phông chữ web .
Điều người ta có thể lưu ý là các trình duyệt khác nhau xử lý việc này khác nhau. Tôi đã viết ở trên rằng tôi đã thử nghiệm Opera và Chrome, cả hai đều cư xử tương tự nhau. Tất cả những cái dựa trên WebKit (Chrome, Safari, v.v.) chọn để tránh FOUT bằng cách không hiển thị văn bản phông chữ web bằng phông chữ dự phòng trong thời gian tải phông chữ web. Ngay cả khi phông chữ web được lưu trữ, sẽ có độ trễ kết xuất . Có rất nhiều ý kiến trong chuỗi câu hỏi này nói khác đi và thật sai lầm khi các phông chữ được lưu trong bộ nhớ cache hoạt động như thế này, nhưng ví dụ từ liên kết trên:
Trong trường hợp nào bạn sẽ nhận được một KHÔNG
- Will: Tải xuống và hiển thị một ttf / otf / woff từ xa
- Will: Hiển thị một ttf / otf / woff được lưu trữ
- Will: Tải xuống và hiển thị dữ liệu-uri ttf / otf / woff
- Will: Hiển thị dữ liệu được lưu trong bộ nhớ cache-uri ttf / otf / woff
- Sẽ không: Hiển thị phông chữ đã được cài đặt và đặt tên trong ngăn xếp phông chữ truyền thống của bạn
- Sẽ không: Hiển thị phông chữ được cài đặt và đặt tên bằng vị trí local ()
Vì Chrome chờ cho đến khi hết rủi ro FOUT trước khi kết xuất, điều này sẽ gây ra sự chậm trễ. Mà mức độ hiệu quả là nhìn thấy được (đặc biệt là khi tải từ bộ nhớ cache) có vẻ là phụ thuộc vào trong số những thứ khác, số lượng văn bản mà cần phải được trả lại và các yếu tố có lẽ khác, nhưng bộ nhớ đệm không hoàn toàn loại bỏ các hiệu ứng.
Ailen cũng có một số cập nhật liên quan đến hành vi của trình duyệt kể từ 2011 2011041414 ở cuối bài:
- Firefox (kể từ FFb11 và FF4 Final) không còn FERE! Wooohoo! http://ormszil.la/499292 Về cơ bản văn bản là vô hình trong 3 giây, và sau đó nó mang lại phông chữ dự phòng. Webfont có thể sẽ tải trong vòng ba giây mặc dù rất hy vọng ..
- IE9 hỗ trợ WOFF và TTF và OTF (mặc dù nó yêu cầu một thứ thiết lập bit nhúng - chủ yếu là moot nếu bạn sử dụng WOFF). TUY NHIÊN!!! IE9 có một KHÔNG. :
- Webkit có một bản vá đang chờ hạ cánh để hiển thị văn bản dự phòng sau 0,5 giây. Vì vậy, hành vi tương tự như FF nhưng 0,5 giây thay vì 3 giây.
- Ngoài ra : Blink cũng có một lỗi được đăng ký cho vấn đề này , nhưng có vẻ như chưa đạt được sự đồng thuận cuối cùng về việc phải làm gì với nó - hiện đang thực hiện giống như WebKit.
Nếu đây là một câu hỏi dành cho các nhà thiết kế, người ta có thể tìm cách tránh các loại vấn đề này webfontloader
, nhưng đó sẽ là một câu hỏi khác. Liên kết Paul Ailen đi sâu vào chi tiết hơn về vấn đề này.