2009-06-24 20 views
12

Cập nhật: Có vẻ như thông tin yêu cầu tiêu đề là thủ phạm. Làm cách nào để thay đổi thuộc tính độ tuổi tối đa của tiêu đề yêu cầu? TIA.Sử dụng thời gian tải chậm của phông chữ. Tôi có thể buộc khách hàng lưu vào bộ nhớ cache phông chữ không?


Xin chào, tôi đang sử dụng @ font-face trên trang web và tôi đang tải văn bản bị trì hoãn (có lẽ do tải phông chữ mỗi trang). Tôi hiểu khách hàng phải tải xuống phông chữ một lần để hiển thị đúng cách, nhưng mỗi trang?

Có cách nào tôi có thể buộc trình duyệt lưu vào bộ nhớ cache tệp đó không? Hoặc có cách nào khác để tăng tốc thời gian tải của phông chữ không? (Đây có phải là câu hỏi thích hợp hơn để đăng trên Server Fault?)

Cảm ơn bạn trước. trường hợp xấu nhất, tôi sẽ sống với sự chậm trễ, vì vậy tôi không cần bất kỳ "cất cánh @ font-face" câu trả lời ...;)

Thông tin bổ sung:

  • Tôi đã đã thử nghiệm điều này trong cả Safari (4) và Firefox (3.5RC1) trên cả Mac và Windows (XP và 7)
  • Tất cả các trình duyệt mà tôi đã thử nghiệm hiện được thiết lập để cho phép lưu vào bộ nhớ cache (theo mặc định)
  • URL là không động, chỉ đơn giản là "/ phông chữ /font.otf"
  • URL phông chữ là đúng, như trang tải phông chữ và hiển thị nó một cách chính xác, mặc dù chậm hơn sau đó bình thường
  • Tiêu đề yêu cầu:

    Cache-Control: max-age = 0
    If-Modified-Since: Wed, 24 Tháng 6 2009 03:46:28 GMT
    Nếu-Không-Khớp: W/"484d9f2-a5ac-46d10ff2ebcc0"
    Referer: http://testurl.com/
    User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6; en-us) AppleWebKit/530,13 (KHTML, như Gecko) Version/4.0 Safari/530,15

  • đáp ứng tiêu đề:

    kết nối: Keep-Alive
    ngày: Thu, 25 Tháng sáu 2009 02:21:31 giờ
    ETag: "484d9f2-a5ac-46d10ff2ebcc0"
    Keep-Alive: timeout = 10, max = 29
    server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

+1

Bạn có thể đăng tiêu đề hiện tại được gửi để yêu cầu phông chữ không? –

+0

Cảm ơn bạn đã hỏi Matt, tôi đã thêm nó. Có vẻ như độ tuổi tối đa là những gì đang làm. Làm thế nào tôi có thể thay đổi điều đó trong một thời gian dài hơn? – mclaughlinj

+0

Điều gì về các tiêu đề RESPONSE? đây chỉ là có liên quan, nếu không nhiều hơn. – SpliFF

Trả lời

2

Bạn có chắc chắn các tệp phông chữ của mình có thể lưu vào bộ nhớ cache không? Cũng giống như các nội dung tĩnh khác, chúng phải có ngày hết hạn trong tương lai và tiêu đề của chúng phải được định cấu hình để cho phép chúng được lưu vào bộ nhớ cache. Nếu bạn đang lưu trữ phông chữ của bạn trên một trang trại máy chủ, bạn sẽ muốn đảm bảo tiêu đề etag của bạn được chuẩn hóa trên tất cả các máy chủ trong trang trại ... nếu không, các yêu cầu tiếp theo cho phông chữ có thể buộc phải tải xuống lại từ máy chủ thay thế mặc dù cùng một dữ liệu đã được tải xuống từ một máy chủ khác.

+0

Nhận xét tuyệt vời, tuy nhiên, đó không phải là những gì đang xảy ra vì tôi không lưu trữ tệp trên trang trại máy chủ. Đối với các tiêu đề của tập tin, có, chúng được cấu hình để cho phép bộ nhớ đệm, tôi đang cố gắng để "buộc" bộ nhớ đệm mặc dù (như tập tin sẽ không bao giờ thay đổi). – mclaughlinj

+0

Ngoài việc cho phép lưu vào bộ nhớ cache, hãy đảm bảo bạn có ngày hết hạn trong tương lai. Khá thường xuyên tôi sẽ kích hoạt bộ nhớ đệm trên một số nội dung tĩnh, nhưng sẽ không cho nó một ngày hết hạn trong tương lai xa ... và nó sẽ từ chối cache (FireFox là thử nghiệm tốt nhất về điều này, vì nó quá cầu kỳ về có chính xác các tiêu đề phù hợp để cache một cái gì đó ... Opera là FAR khoan dung hơn, và IE là không thể đoán trước.) – jrista

+0

Tôi sẽ xem xét nó và chắc chắn rằng tôi đã đặt chúng đúng. Cảm ơn cho những người đứng đầu lên! – mclaughlinj

4

Bạn không bao giờ có thể buộc trình duyệt lưu vào bộ nhớ cache gì đó, chỉ khuyến khích nó.Tôi có thể nghĩ không có lý do tại sao một tập tin phông chữ với đúng hết hạn tiêu đề sẽ không được lưu trữ trong đó đưa chúng ta đến:

  • Đó là một lỗi trình duyệt (bạn không nói trước với các trình duyệt)
  • kiểm soát bộ nhớ cache của bạn tiêu đề bị thiếu hoặc sai
  • Trình duyệt của bạn được cấu hình để không cache bất cứ điều gì (làm hình ảnh bộ nhớ cache?)
  • URL phông chữ của bạn là động lực để trình duyệt cho rằng mỗi yêu cầu là cho một nguồn tài nguyên khác nhau
  • phông chữ tập tin khuôn mặt thực sự là thiếu hoặc URL bị lỗi.
  • Việc chậm trễ không phải là do việc tải xuống phông chữ (bạn đã nói rằng bạn đoán đây là vấn đề)

Tôi nghĩ biết thêm thông tin là theo thứ tự.

EDIT: Để đặt điều khiển bộ nhớ cache là máy chủ và ngôn ngữ cụ thể. Hãy xem mod_expires để biết thông tin về caching trong Apache.

+0

Cảm ơn bạn đã trả lời, tôi đã cập nhật bài đăng để phản ánh một số điểm của bạn. Tôi cũng sẽ xem xét chi tiết hơn tại thông tin tiêu đề kiểm soát bộ nhớ cache để đảm bảo rằng tôi đã không phạm sai lầm ở đó. Lý do tôi cho rằng đó là sự cố tải xuống khi tôi kiểm tra trang web trên máy chủ cục bộ của mình (tốc độ tải xuống rõ ràng là nil) tải phông chữ đặc biệt trong thời gian bình thường (giống như văn bản thông thường). – mclaughlinj

Các vấn đề liên quan