2011-09-07 2 views
9

Как и в случае с How to reload/refresh an element(image) in jQuery, но не в то же время.Обновить <img> in jQuery периодически

У меня есть веб-камера, которая сохраняет изображения каждые 2 секунды, а не потоковое. Используя jQuery (или прямое JS), я хочу обновить только элемент изображения.

Должно быть легко, но все мои запросы показывают обновление по запросу.

ответ

11
setInterval(function(){ 
    $("#myimg").attr("src", "/myimg.jpg?"+new Date().getTime()); 
},2000); 
+0

Где у вас есть «myimg.jpg» У меня есть глобальный набор переменных JS с контуром, как его интегрировать? Я пробовал $ ("# myimg"). Attr ("src", imagePath + "?" + D.getTime()); но изображение исчезает – jdborg

+0

Я написал 'new Date(). getTime()'. если вы используете 'd.getTime()', вам придется сначала назначить его var d = new Date(); ' – Andy

+0

ah, сделайте это. Благодарю. – jdborg

2

Это должно сделать работу:

window.setInterval(function() { 
    var d = new Date(); 
    $("#myimg").attr("src", "/myimg.jpg?"+d.getTime()); 
}, 2000); 
+0

Где у вас есть «myimg.jpg» У меня есть глобальный набор переменных JS с контуром, как его интегрировать? Я пробовал $ ("# myimg"). Attr ("src", imagePath + "?" + D.getTime()); но изображение исчезает – jdborg

+0

ах, сделано. Благодарю. – jdborg

0

Добавить метку к источнику изображения он освежит.

setInterval(function(){ 
    $("img").each(function(){ 
     var timeStamp = (new Date()).getTime(); 
     $(this).attr("src", $(this).attr("src") + timeStamp); 
    }); 
}, 2000); 
+0

В отличие от других ответов, это увеличит размер URL каждые 2 секунды (потому что вы продолжаете добавлять, а не заменять). Это не займет слишком много времени, прежде чем у вас будет длинный URL-адрес. – Arbiter

3

setInterval таймер, который будет выполнять функцию, все, что х миллисекунды

setInterval(function() { 
    var d = new Date(); 
    $("#myimg").attr("src", "/myimg.jpg?"+d.getTime()); 
}, 2000); 
+0

Где у вас есть «myimg.jpg» У меня есть глобальная переменная JS с пути, как мне ее интегрировать? Я пробовал $ ("# myimg"). Attr ("src", imagePath + "?" + D.getTime()); но изображение исчезает – jdborg

+0

ах, сделано. Благодарю. – jdborg

2

Вы должны заставить браузер realod изображения вместо того, чтобы его из кэша. Вы можете сделать это, изменив URL-адрес, добавив бесполезный параметр, который изменяется каждый раз, например временная метка.

$('img.webcam').each(function() { 
    var jqt = $(this); 
    var src = jqt.attr('src'); 
    src = src.substr(0,src.indexOf('?')); 
    src += '?_ts=' + new Date().getTime(); 
    jqt.attr('src',src); 
}); 

Выполнение этого фрагмента внутри таймера или щелчком или обоими или другими.

Смежные вопросы