2009-06-24 10 views
12

Actualización: Parece que la información de solicitud del encabezado es la culpable. ¿Cómo cambiaría la propiedad max-age del encabezado de solicitud? TIA.El uso de @ font-face reduce el tiempo de carga. ¿Puedo forzar al cliente a almacenar en caché la fuente?


Hola, Estoy utilizando @ font-face en un sitio web y que estoy experimentando carga diferida del texto (presumiblemente debido a la carga de la fuente de cada página). Entiendo que el cliente tiene que descargar la fuente una vez para mostrarla correctamente, ¿pero cada página?

¿Hay alguna manera de forzar al navegador a almacenar en caché ese archivo? ¿O hay otra alternativa para acelerar el tiempo de carga de la fuente? (¿Es esta una pregunta más apropiada para publicar en Server Fault?)

Gracias de antemano. Peor de los casos, voy a vivir con el retraso, por lo que no necesita ninguna "despegue @ font-face" respuestas ...;)

Información adicional:

  • tengo probado esto en ambos Safari (4) y Firefox (3.5RC1) en Mac y Windows (XP y 7)
  • Todos los navegadores que he probado están configurados actualmente para permitir el almacenamiento en caché (está activado por defecto)
  • La URL es no dinámica, es simplemente "/ fonts /font.otf"
  • El URL de la fuente es correcta, ya que la página carga la fuente y la muestra correctamente, aunque más lento de lo normal
  • encabezado de solicitud:

    Cache-Control: max-age = 0
    If-Modified-Since: Miér 24 Jun 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; es-es) AppleWebKit/530.13 (KHTML, like Gecko) Version/4.0 Safari/530.15

  • cabeceras de respuesta:

    conexión: Keep-Alive
    Fecha: Jue 25 Jun 2009 02:21:31 GMT
    Etag: "484d9f2-a5ac-46d10ff2ebcc0"
    Keep-Alive: timeout = 10, max = 29
    servidor: 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

¿Se puede publicar los encabezados actuales enviados para una solicitud de la fuente? –

+0

Gracias por preguntarle a Matt, lo he agregado. Parece que la edad máxima es lo que lo está haciendo. ¿Cómo cambiaría eso a una duración más larga? – mclaughlinj

+0

¿Qué pasa con los encabezados de RESPUESTA? estos son igual de relevantes, si no más. – SpliFF

Respuesta

2

¿Estás seguro de que los archivos de tu fuente son transferibles en caché? Al igual que otros contenidos estáticos, deberían tener fechas de vencimiento en el futuro lejano, y sus encabezados deberían estar configurados para permitir su almacenamiento en caché. Si aloja sus fuentes en una granja de servidores, querrá asegurarse de que su encabezado etag esté normalizado en todos los servidores de la comunidad ... de lo contrario, las solicitudes subsiguientes de la fuente pueden obligarlo a volver a descargarse de un servidor alternativo. aunque la misma información ya se descargó de otro servidor.

+0

Un gran comentario, sin embargo, eso no es lo que está sucediendo, ya que no estoy alojando el archivo en una granja de servidores. En cuanto a los encabezados del archivo, sí, están configurados para permitir el almacenamiento en caché, pero estoy tratando de "forzar" el almacenamiento en caché (ya que el archivo nunca cambiará). – mclaughlinj

+0

Además de permitir el almacenamiento en caché, asegúrese de tener una fecha de caducidad futura. Muy a menudo habilitaré el almacenamiento en caché de algún contenido estático, pero no le daré una fecha de vencimiento en el futuro lejano ... y se negará a almacenar en caché (FireFox es la mejor prueba de esto, ya que es excesivamente exigente con tener exactamente los encabezados correctos para almacenar algo en caché ... Opera es MUCHO más indulgente, y IE es impredecible.) – jrista

+0

Lo investigaré y me aseguraré de que los haya configurado correctamente. ¡Gracias por el aviso! – mclaughlinj

4

Nunca puede obligar a un navegador a almacenar en caché algo, solo aliéntelo.No puedo pensar en ninguna razón para que un archivo de fuente con el correcto expira cabeceras no se almacenan en caché que nos lleva a:

  • Es un error del navegador (no se dice qué navegador)
  • Su control de caché cabeceras perdidas o mal
  • Su navegador está configurado para no almacenar en caché cualquier cosa (ver imágenes caché?)
  • la URL de la fuente es dinámico por lo que el navegador piensa que cada solicitud es para un recurso diferente
  • archivo de cara
  • el tipo de letra es en realidad falta o la URL misspelt.
  • El retraso no es causado por la descarga de fuentes (que he dicho que presumes Este es el asunto)

Creo que más información está en orden.

EDITAR: para establecer el control de la memoria caché es algo específico del servidor y del idioma. Consulte mod_expires para obtener información sobre el almacenamiento en caché en Apache.

+0

Gracias por su respuesta, he actualizado la publicación para reflejar algunos de sus puntos. También veré más en detalle la información del encabezado del control de caché para asegurarme de que no cometí un error allí. La razón por la que supongo que es un problema de descarga es cuando pruebo el sitio en mi servidor local (donde las velocidades de descarga son obviamente nulas) la fuente especial se carga en tiempo normal (lo mismo que el texto normal). – mclaughlinj

Cuestiones relacionadas