Во-первых, когда вы устанавливаете атрибут src
вашего объекта изображения, изображение еще не загружено, вам нужно обновить холст, когда onload
изображения будет запущено (когда изображение будет загружено) ,
Во-вторых, браузер пытается использовать кэшированное изображение image.jpeg
. Чтобы избежать этого, добавьте фиктивный аргумент в URI изображения.
Например:
var timeoutPeriod = 1000;
var imageURI = 'image.jpeg';
var x=0, y=0;
var img = new Image();
img.onload = function() {
var canvas = document.getElementById("x");
var context = canvas.getContext("2d");
context.drawImage(img, x, y);
x+=20; y+=20;
setTimeout(timedRefresh,timeoutPeriod);
};
function timedRefresh() {
// just change src attribute, will always trigger the onload callback
img.src = imageURI + '?d=' + Date.now();
}
И тогда должно получиться.