2009-06-18 8 views
1

J'utilise .ashx pour récupérer l'image et je place l'image dans le panneau de mise à jour Ajax il retriver l'image quand une nouvelle image est ajoutée au formulaire mais quand nous changeons l'image il ne met pas à jour le image il ne même pas appeler le fichier .ashx mais quand je rafraîchis le navigateur il fonctionne correctementimage en utilisant .ashx

Répondre

4

Cela ressemble à un problème de mise en cache. Essayez d'ajouter quelques-unes des lignes trouvées here à votre fichier ashx et il faut espérer forcer le navigateur à récupérer l'image. (Je sais que le lien est pour ASP plutôt qu'ASP.NET, mais des choses comme Response.Expires = -1 devraient fonctionner)

Alternativement, pouvez-vous changer le chemin d'accès à l'image dans le panneau de mise à jour? Si vous ajoutez simplement un paramètre aléatoire à la fin de celui-ci, le navigateur le traitera comme une nouvelle requête (nous utilisons la date/heure actuelle comme paramètre lorsque nous faisons cela.) Le paramètre est ignoré par ASP.NET sauf si vous référence explicitement)

+0

Je suis d'accord! Vous pouvez résoudre ce problème en ajoutant un en-tête de réponse. –

0

quelque chose comme ça:

var sPath = "../../handlers/ProcessSignature.ashx?type=View & UserID =" + + userID "& d =" + (((1 + Math.random()) * 0x10000) | 0) .toString (16) .substring (1);

Cela met une chaîne alphanumérique à 4 caractères à la fin de votre chaîne de requête. Ce n'est pas nécessaire, mais cela forcera les navigateurs à choisir la dernière version de cette image car l'URL est différente.

J'ai essayé ce qui précède et certains navigateurs ignorent les en-têtes. J'ai jeté tous ceux dans et Chrome/FireFox 3 n'a pas essayé de mettre à jour.

IE7 a travaillé parfois

IE6 juste twiddled il est pouces et a demandé pourquoi il était encore en existence.

Modifier le chemin ci-dessus permet de le corriger dans tous les navigateurs.