Pytanie Użycie @ font-face spowalnia czas ładowania. Czy mogę wymusić na kliencie buforowanie czcionki?


Aktualizacja: Wygląda na to, że winowajcą jest informacja o nagłówku. Jak zmienić właściwość max-age nagłówka żądania? TIA.


Cześć, używam @ font-face na stronie i mam opóźnione ładowanie tekstu (prawdopodobnie ze względu na ładowanie czcionki na każdej stronie). Rozumiem, że klient musi pobrać czcionkę raz, aby wyświetlać poprawnie, ale każdą stronę?

Czy istnieje sposób zmuszenia przeglądarki do buforowania tego pliku? Czy istnieje inna alternatywa, aby przyspieszyć ładowanie czcionki? (Czy jest to pytanie bardziej odpowiednie do zamieszczania na stronie Awaria serwera?)

Z góry dziękuję. Najgorszy przypadek, będę żył z opóźnieniem, więc nie potrzebuję odpowiedzi "zdejmij @ font-face" ...;)

Dodatkowe informacje:

  • Testowałem to zarówno w Safari (4), jak i Firefox (3.5RC1) na komputerach Mac i Windows (XP i 7)
  • Wszystkie przeglądarki, na których testowałem, są obecnie skonfigurowane tak, aby zezwalały na buforowanie (domyślnie włączone)
  • Adres URL to nie dynamiczny, to po prostu "/fonts/font.otf"
  • Adres URL czcionki jest poprawny, ponieważ strona ładuje czcionkę i wyświetla ją poprawnie, aczkolwiek wolniej niż normalnie
  • Żądaj nagłówka:

    Cache-Control: max-age = 0
    Zmodyfikowany - od: środa, 24 czerwca 2009 03:46:28 GMT
    Jeśli-brak-dopasowanie: 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, podobnie jak Gecko) Wersja / 4.0 Safari / 530.15

  • Nagłówki odpowiedzi:

    Połączenie: Keep-Alive
    Data: czw, 25 czerwca 2009 02:21:31 GMT
    Etag: "484d9f2-a5ac-46d10ff2ebcc0"
    Keep-Alive: timeout = 10, maksimum = 29
    Serwer: 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


12
2018-06-24 03:53


pochodzenie


Czy możesz opublikować bieżące nagłówki wysłane na żądanie czcionki? - Matthew Flaschen
Dzięki, że pytasz Matta, dodałem to. Wygląda na to, że maksymalny wiek jest tym, co robi. Jak zmienić to na dłuższy czas? - mclaughlinj
co z nagłówkami RESPONSE? są one równie istotne, jeśli nie większe. - SpliFF
Ustawienie maksymalnego wieku jest specyficzne dla serwera i języka. jeśli twój apache przyjrzy się mod_expires - SpliFF
K, dodałem nagłówki odpowiedzi. Rzucę okiem na mod_expires. Dziękuję bardzo. - mclaughlinj


Odpowiedzi:


Nigdy nie możesz zmusić przeglądarki do buforowania czegoś, tylko zachęcaj. Nie widzę powodu, dla którego plik czcionki z prawidłowymi wygasającymi nagłówkami nie byłby buforowany, co prowadzi nas do:

  • To błąd przeglądarki (nie mówisz, która przeglądarka)
  • Twoje nagłówki kontroli pamięci podręcznej są niedostępne lub są nieprawidłowe
  • Twoja przeglądarka jest skonfigurowana tak, aby niczego nie buforować (czy pamięci podręcznej obrazów?)
  • Adres URL czcionki jest dynamiczny, więc przeglądarka uważa, że ​​każde żądanie dotyczy innego zasobu
  • Brakuje pliku twarzy czcionki lub nieprawidłowy adres URL.
  • Opóźnienie NIE jest spowodowane pobieraniem czcionek (mówiłaś przypuszczać to jest problem)

Myślę, że więcej informacji jest w porządku.

EDYCJA: Aby ustawić kontrolę pamięci podręcznej jest specyficzne dla serwera i języka. Patrzeć na mod_expires dla informacji o buforowaniu w Apache.


4
2018-06-24 04:14



Dziękuję za odpowiedź, zaktualizowałem post, aby odzwierciedlić niektóre z Twoich punktów. Przyjrzę się również bardziej szczegółowym informacjom nagłówka kontrolki pamięci podręcznej, aby upewnić się, że nie popełniłem błędu. Powodem, dla którego zakładam, że jest to problem z pobieraniem, jest sytuacja, gdy testuję witrynę na moim lokalnym serwerze (gdzie prędkości pobierania są oczywiście obok zer), specjalne czcionki ładują się w normalnym czasie (tak samo jak zwykły tekst). - mclaughlinj


Czy jesteś pewien, że twoje pliki czcionek są buforowalne? Podobnie jak inne statyczne treści, powinny mieć datę wypłaty w przyszłości, a ich nagłówki powinny być tak skonfigurowane, aby umożliwić ich buforowanie. Jeśli hostujesz swoje czcionki na farmie serwerów, będziesz chciał się upewnić, że Twój nagłówek etag jest znormalizowany na wszystkich serwerach w farmie ... w przeciwnym razie kolejne żądania czcionki mogą spowodować konieczność jej ponownego pobrania z alternatywnego serwera mimo że te same dane zostały już pobrane z innego serwera.


2
2018-06-24 04:03



Świetny komentarz jednak nie jest to, co się dzieje, ponieważ nie jestem gospodarzem pliku na farmie serwerów. Jeśli chodzi o nagłówki plików, tak, są one skonfigurowane tak, aby zezwalały na buforowanie, ale próbuję "wymuszać" buforowanie (ponieważ plik nigdy się nie zmieni). - mclaughlinj
Oprócz umożliwienia buforowania upewnij się, że masz długą datę wygaśnięcia. Bardzo często włączam cachowanie w jakimś fragmencie statycznej zawartości, ale nie nadaję jej daleko w przyszłości daty wygaśnięcia ... i odmówi buforowania (FireFox jest najlepszym testem tego, ponieważ jest nadmiernie wybredny mając dokładnie te nagłówki, żeby coś cache'ować ... Opera jest DUŻO łagodniejsza, a IE jest nieprzewidywalny.) - jrista
Zajrzę do tego i upewnię się, że ustawiłem je poprawnie. Dzięki za heads-up! - mclaughlinj