Это на самом деле звучит как ошибка в браузере - вы можете подать в http://bugs.webkit.org, если это в Safari или https://bugzilla.mozilla.org/ для Firefox. Почему я говорю потенциальную ошибку браузера? Поскольку браузер понимает, что он не должен кэшировать при перезагрузке, он все же дает вам кэшированную копию изображения при программном запросе.
Тем не менее вы уверены, что на самом деле что-то рисуете? API Canvas.drawImage не будет ждать загрузки изображения и не будет рисовать, если изображение не загружено полностью, когда вы пытаетесь его использовать.
Лучшая практика - это что-то вроде:
var myimg = new Image();
myimg.onload = function() {
var rx=Math.floor(Math.random()*100)*10
var ry=Math.floor(Math.random()*100)*10
ctx.drawImage(myimg,rx,ry);
window.setTimeout(draw,0);
}
myimg.src = 'http://ohm:8080/cgi-bin/nextimg'
(Вы также можете просто передать draw
в качестве аргумента setTimeout вместо использования строки, которая будет сохранять повторный анализ и компиляцию одной и той же строки снова и снова.)