2009-06-24 10 views
12

Aggiornamento: Sembra che l'informazione di richiesta di intestazione sia il colpevole. Come modifico la proprietà massima dell'intestazione della richiesta? TIA.L'uso di @ font-face rallenta il tempo di caricamento. Posso forzare il client a mettere in cache il font?


Ciao, sto usando @ font-face su un sito web e sto vivendo il caricamento ritardato del testo (presumibilmente a causa del carico del carattere ogni pagina). Capisco che il client debba scaricare il font una volta per visualizzarlo correttamente, ma ogni pagina?

C'è un modo per forzare il browser a mettere in cache quel file? O c'è un'altra alternativa per accelerare il tempo di caricamento del font? (È una domanda più appropriata per pubblicare su Server Fault?)

Grazie in anticipo. Nel peggiore dei casi, vivrò con il ritardo, quindi non ho bisogno di alcun "Togliti @ font-face" risposte ...;)

Ulteriori informazioni:

  • ho testato sia in Safari (4) che in Firefox (3.5RC1) su Mac e Windows (XP e 7)
  • Tutti i browser su cui ho provato sono attualmente impostati per consentire il caching (è attivato per impostazione predefinita)
  • L'URL è non dinamico, è semplicemente "/ caratteri" /font.otf"
  • L'URL font è corretto, come pagina carica il tipo di carattere e lo visualizza correttamente, anche se più lentamente del normale
  • Richiesta Intestazione:

    Cache-Control: max-age = 0
    If-Modified-Since: mer, 24 Giugno 2009 03:46:28 GMT
    If-None-match: W/"484d9f2-a5ac-46d10ff2ebcc0"
    Referer: http://testurl.com/
    User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6; it-it) AppleWebKit/530,13 (KHTML, come Gecko) Version/4.0 Safari/530.15

  • intestazioni di risposta:

    Connection: Keep-Alive
    Data: Giovedì, 25 giugno 2009 02:21:31 GMT
    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

Puoi pubblicare le intestazioni correnti inviate per una richiesta per il carattere? –

+0

Grazie per avermelo chiesto, l'ho aggiunto. Sembra che l'età massima sia ciò che lo fa. Come potrei cambiarlo in una durata più lunga? – mclaughlinj

+0

E le intestazioni di RESPONSE? questi sono altrettanto rilevanti, se non di più. – SpliFF

risposta

2

Sei sicuro che i file dei caratteri siano scollegabili? Proprio come gli altri contenuti statici, dovrebbero avere scadenze future scadenti e le intestazioni dovrebbero essere configurate per consentire loro di essere memorizzate nella cache. Se stai ospitando i tuoi font in una server farm, dovrai assicurarti che la tua intestazione etag sia normalizzata su tutti i server della farm ... altrimenti le successive richieste per il font potrebbero forzarne il ri-download da un server alternativo anche se gli stessi dati erano già stati scaricati da un altro server.

+0

Un grande commento, tuttavia, non è quello che succede perché non sto ospitando il file su una server farm. Per quanto riguarda le intestazioni del file, sì, sono configurate per consentire il caching, sto cercando di "forzare" il caching anche se (dato che il file non cambierà mai). – mclaughlinj

+0

Oltre a consentire la memorizzazione nella cache, assicurarsi di avere una data di scadenza futura. Molto spesso abiliterò il caching su qualche pezzo di contenuto statico, ma non gli darò una data di scadenza molto lontana ... e si rifiuterà di memorizzare nella cache (FireFox è il miglior test di questo, dato che è eccessivamente schizzinoso riguardo avere esattamente le intestazioni giuste per archiviare qualcosa ... L'Opera è FAR più indulgente, e IE è imprevedibile.) – jrista

+0

Guarderò dentro e assicurarmi di averli sistemati correttamente. Grazie per il testa a testa! – mclaughlinj

4

Non è mai possibile forzare un browser a memorizzare nella cache qualcosa, ma incoraggiarlo.Mi viene in mente alcun motivo per cui un file di font con il corretto scade intestazioni non sarebbero memorizzati nella cache, che ci porta a:

  • Si tratta di un bug del browser (non si dice quale browser)
  • vostro controllo della cache intestazioni sono mancanti o sbagliato
  • il tuo browser è configurato per non memorizzare nella cache nulla (fare cache di immagini?)
  • l'URL di carattere è dinamico modo che il browser pensa che ogni richiesta è per una risorsa diversa
  • file di fronte
  • il font è in realtà mancante o o l'errore di scrittura dell'URL.
  • Il ritardo non è causato dal carattere download (hai detto tu presume questo è il problema)

penso ulteriori informazioni è in ordine.

MODIFICA: per impostare il controllo della cache è un server specifico per la lingua. Guarda mod_expires per informazioni sulla memorizzazione nella cache in Apache.

+0

Grazie per la tua risposta, ho aggiornato il post per riflettere alcuni dei tuoi punti. Vedrò anche più in dettaglio le informazioni dell'intestazione del controllo della cache per assicurarmi di non aver fatto un errore lì. Il motivo per cui presumo si tratti di un problema di download è quando eseguo il test del sito sul mio server locale (dove le velocità di download sono ovviamente prossime a zero) il carattere speciale viene caricato in tempo normale (uguale al testo normale). – mclaughlinj

Problemi correlati