<img src="test.php" />
où test.php génère une image avec un nombre aléatoire.Comment rafraîchir le src de <img /> avec jQuery?
Itried:
Mais cela ne fonctionne pas.
<img src="test.php" />
où test.php génère une image avec un nombre aléatoire.Comment rafraîchir le src de <img /> avec jQuery?
Itried:
Mais cela ne fonctionne pas.
Vous pouvez forcer un rafraîchissement en ajoutant une chaîne aléatoire à la fin, changeant ainsi l'URL:
$('#verifyimage').click(function() {
$(this).attr('src', $(this).attr('src')+'?'+Math.random());
});
Ajouter un horodatage ou un nombre aléatoire:
var timestamp = new Date().getTime();
$(this).attr('src',$(this).attr('src') + '?' +timestamp);
L'horodatage est une meilleure solution! Vous ne pouvez pas compter sur le hasard pour ne pas être la même chose parfois. – jerwood
essayé cela mais ayant des problèmes en chrome. Image src est ajouté à l'horodatage mais la vignette n'est pas actualisée. Pouvez-vous me suggérer quoi que ce soit à ce sujet? –
@RohanPatil - Il y a un problème évident ici - vous voulez ** ajouter ou mettre à jour ** un paramètre de requête ** ** - ce code est juste une solution partielle - il suppose qu'il n'y a pas de paramètres de requête pour commencer (en plus , Je soupçonne que ça ne marche qu'une seule fois). – Kobi
Dans test.php ensemble les en-têtes de Content-Type:
à image/jpeg
Prendre KPrimes grande réponse et en ajoutant dans la suggestion de trackers, ce que je suis venu avec:
jQuery(function($) {
// we have both a image and a refresh image, used for captcha
$('#refresh,#captcha_img').click(function() {
src = $('#captcha_img').attr('src');
// check for existing ? and remove if found
queryPos = src.indexOf('?');
if(queryPos != -1) {
src = src.substring(0, queryPos);
}
$('#captcha_img').attr('src', src + '?' + Math.random());
return false;
});
});
Eww. Non, ne le fais pas. Définissez les en-têtes de réponse de mise en cache appropriés sur le serveur à la place. –
'Cache-control',' Expires', et al. ne fonctionne qu'une fois qu'une requête HTTP est reçue - ce qui précède est simplement de forcer le client à faire cette demande. En l'absence d'un 'Image.reload' (AFAIK), ce fut la méthode la plus simple de faire une nouvelle demande –
suggère l'attribut sous-chaîne src à un « ? » de sorte que, après la première fois, il ne continue pas d'ajouter plus de données querystring ... – Tracker1