0

J'ai déjà téléchargé mon application Web dans mon serveur Web Production Tomcat.
J'essaie de le tester déjà et cela fonctionne très bien sur FF/IE7/IE8 mais j'ai un problème sur IE6. Je remarque dans la barre d'état que IE6 semble télécharger les images de temps en temps. Même si je n'ai rien cliqué, il télécharge toujours les images.IE6 Ne pas mettre en cache mes images

J'utilise un menu qui utilise des images et il ne s'affiche pas bien sur IE6. Le problème est que 60% de mon utilisateur ciblé fonctionne sur ce navigateur. Je commence à penser qu'il s'agit d'un problème de cache du navigateur. Dans tous mes JSP, je place ci-dessous meta tag dans toute la section tête. Je l'ai fait parce que mes applications dépendent fortement d'Ajax et j'ai besoin de la dernière copie de ma ressource Web.

<head> 
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Cache-Control" content="no-cache"> 
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT"> 
</head> 

Cela peut-il être le coupable et y a-t-il une solution de contournement pour cela? Comment puis-je forcer IE6 à mettre en cache ces images? Merci. Je ne suis pas exactement sûr si c'est ce que vous recherchez mais veuillez conseiller si je manque n'importe quoi.

Ceci est un exemple d'une image en cours de téléchargement. J'ai oublié de mentionner que cette application fonctionne uniquement sur notre site intranet local.

@Pekka, Est-ce ce que vous cherchez?

Response Headers 
Server Apache-Coyote/1.1 
Etag W/"1957-1275442082000" 
Date Mon, 18 Oct 2010 11:37:00 GMT 

Request Headers 
Host atpapps03:9090 
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729) 
Accept image/png,image/*;q=0.8,*/*;q=0.5 
Accept-Language en-us,en;q=0.5 
Accept-Encoding gzip,deflate 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive 115 
Connection keep-alive 
Referer http://atpapps03:9090/rts/css/menu.css 
Cookie JSESSIONID=0DD210EE0B2788A7774B10D477734DA9 
If-Modified-Since Wed, 02 Jun 2010 01:28:02 GMT 
If-None-Match W/"1957-1275442082000" 
Cache-Control max-age=0 
+0

Veuillez utiliser Firebug pour obtenir les en-têtes de réponse des ressources d'image, en particulier celles liées à la mise en cache, et les publier ici –

+0

si 60% de vos utilisations s'exécutent sur IE6 vous devriez avoir fait votre développement sur IE6 (vous avez maintenant a eu le visage la douleur, que vous choisissez d'advoid en développant sur le sourir d'anthère) –

+0

@Ian De quoi parlez-vous? Ceci est une question de mise en cache, pas un problème d'affichage HTML –

Répondre

2

Dans tous mes JSP, je place ci-dessous balise META dans toute la section tête. Je l'ai fait parce que mes applications dépendent fortement d'Ajax et j'ai besoin de la dernière copie de ma ressource Web.

Il y a deux problèmes:

  1. Les balises meta sont ignorés par le navigateur Web. Mettez cette information dans l'en-tête de réponse.

  2. Même quand il n'a pas été ignoré, les règles de méta ne s'appliquerait à la sortie HTML de la JSP et donc pas sur toutes les ressources liées (img, js, css, etc.) à l'intérieur de la sortie HTML. Ils ont chacun leurs propres règles dans leur propre entête de réponse.

Votre meilleur pari utilise un Filter qui ajoute l'en-tête Expires à une date future lointain sur le contenu statique.

private static final long DEFAULT_EXPIRE_TIME = 604800000L; // ..ms = 1 week. 

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { 
    final long twoWeeksAhead = System.currentTimeMillis() + DEFAULT_EXPIRE_TIME; 
    ((HttpServletResponse) response).setDateHeader("Expires", twoWeeksAhead); 
    chain.doFilter(request, response); 
} 

Plan filtre web.xml sur une url-pattern couvrant l'URL d'intérêt, par exemple /images/*.

+0

+1 pour des conseils spécifiques –

+0

Merci. La note de YSLOW pour Expire est maintenant A et je vois une vitesse de chargement considérable maintenant dans IE6. Merci merci! –

+0

D'une part, avez-vous une idée pourquoi seul IE6 présente ce genre de comportement? Pourquoi IE7/IE8/FF se porte bien .. –

1

Voir par ex. this question sur la façon de contrôler les paramètres de mise en cache pour les types de fichiers statiques.

+0

@Pekka J'ai posté ci-dessus un échantillon d'un fichier image à partir d'une image Jquery UI. Est-ce ce que vous cherchez? –

+0

@Mark yup. Vous devez modifier les paramètres côté serveur pour la mise en cache –

+0

@Pekka. Merci. Je vais vérifier sur ce point même si honnêtement, je n'ai pas encore une idée sur la façon de le faire. Je vais demander conseil car je suis encore un débutant sur Spring MVC –

-1

Pekka is correct, c'est probablement le contrôle de mise en cache. Un moyen de contourner ce problème serait de charger vos images à partir d'un sous-domaine différent avec un ensemble différent d'en-têtes de cache. Si vous utilisez un fournisseur CDN, ils vont définir le contrôle de cache pour vous.

IE SUCE! id le tester sur IE 7-8-9. Très peu utilisent IE6 si c'est une application intranet, une solution rapide serait cadre Chrome, le détecter, et si ce n'est pas installé rediriger vers une page de téléchargement.