Tutaj coś skompilowałem, co może pomóc. Nie udało mi się tego przetestować. Daj mi znać, jeśli masz jakieś problemy.
$(function() {
var $images = $('img.imageClassUpdateAtInterval:not([src="/assets/spinner.gif"])');
// Now, no such image with
// a spinner
if($images.length === 0 && window.imageLocator)
clearInterval(window.imageLocator);
window.imageLocator = setInterval(function() {
$images.each(function() {
$this = $(this);
if (!$this.data('src')) {
$this.data('src', $this.prop('src'));
}
$this.prop('src', $this.data('src') + '?timestamp=' + new Date().getTime());
console.log($this.prop('src'));
});
}, 60 * 1000);
// suppose, an error occured during
// locating the src (source) of the
// image - image not found, network
// unable to locate the resource etc.
// it will fall in each time on error
// occurred
$('img.imageClassUpdateAtInterval').error(
function() {
// set a broken image
$(this).unbind("error").attr("src", "/assets/broken.gif");
// setting this up in relative
// position
$(this).css("position", "relative");
$(this).apppend("<span>Error occured</span>");
$(this).find("span").css({"position": "absolute", "background-color": "#252525", "padding": ".3em", "bottom": "0"});
});
});
Powyższe rozwiązanie jest skompilowany z dwóch różnych rozwiązań rozpoczętych przez @user113716 i @travis
To jest doskonałe wejście. Dzięki! Podoba mi się dodatkowe informacje. Oto oryginalny js, którego używam do przeładowania niektórych obrazów w oparciu o klasę co 60 sekund. Byłbym bardzo wdzięczny za zintegrowanie tego kodu z następującym kodem, którego używam, aby te dwa przykłady były poprawnie zintegrowane (jestem całkiem nowy w js na jakimkolwiek znaczącym poziomie): http: // j. mp/wzi7FI – ylluminate
Przepraszam, ylluminate. Uciekłem. Zmieniłem mój post i mam nadzieję, że to ci pomoże. –
Wyszło naprawdę dobrze, dzięki! Przygotuj kilka poprawek, ale udało ci się to wystarczająco dobrze. Świetna praca. – ylluminate