<img src="test.php" />
gdzie test.php generuje obraz o losowej liczbie.Jak odświeżyć src z <img /> z jQuery?
Itried:
Ale to nie działa.
<img src="test.php" />
gdzie test.php generuje obraz o losowej liczbie.Jak odświeżyć src z <img /> z jQuery?
Itried:
Ale to nie działa.
można wymusić odświeżenie poprzez dołączenie losowy ciąg na końcu, zmieniając w ten sposób URL:
$('#verifyimage').click(function() {
$(this).attr('src', $(this).attr('src')+'?'+Math.random());
});
Dodaj znacznik czasu lub liczbę losową:
var timestamp = new Date().getTime();
$(this).attr('src',$(this).attr('src') + '?' +timestamp);
Znacznik czasu jest lepszym rozwiązaniem! Nie można polegać na losowości, aby czasem nie być tym samym. – jerwood
próbował tego, ale ma problem w chrome. Obraz src zostanie dołączony z sygnaturą czasową, ale miniatura nie zostanie odświeżona. Czy możesz mi coś zasugerować? –
@RohanPatil - Tutaj jest oczywisty problem - chcesz ** dodać lub zaktualizować ** parametr ** zapytania ** - ten kod jest tylko częściowym rozwiązaniem - zakłada, że nie ma parametrów zapytania na początek (dodatkowo , Podejrzewam, że działa tylko raz). – Kobi
W test.php zestawie nagłówki z Content-Type:
do image/jpeg
Biorąc KPrimes wielki odpowiedź i dodając trackery sugestii, to co wymyśliłem:
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. Nie, nie rób tego. Zamiast tego ustaw odpowiednie nagłówki odpowiedzi buforowania na serwerze. –
'Cache-control',' Expires', et al. działa tylko po otrzymaniu żądania HTTP - powyższe jest po prostu zmuszeniem klienta do wykonania tego żądania. W przypadku braku "Image.reload" (AFAIK), była to najprostsza metoda, aby nowe żądanie –
zasugerowało, że podciąg na atrybucie src jest "?" tak, że po raz pierwszy nie dołącza więcej danych do powtórzenia ... – Tracker1