Javascript 自动刷新html画布图像不工作

Javascript 自动刷新html画布图像不工作,javascript,html,canvas,Javascript,Html,Canvas,对于我的网站,我需要从不断更新的服务器上重新绘制图像。我找到了解决方案并尝试了,但它仍然无法自动刷新。我还尝试向我的图像(local0.jpg)添加一个伪字符串,这样浏览器就不会使用缓存的图像,但没有成功。我做错了什么 <html> <head> <meta charset="utf-8"> </head> <body> <canvas id="canvas" width="400" height="400"> </

对于我的网站,我需要从不断更新的服务器上重新绘制图像。我找到了解决方案并尝试了,但它仍然无法自动刷新。我还尝试向我的图像(local0.jpg)添加一个伪字符串,这样浏览器就不会使用缓存的图像,但没有成功。我做错了什么

<html>
<head>
<meta charset="utf-8">
</head>
<body>
 <canvas id="canvas" width="400" height="400"> </canvas>
 <script>
 var imageObj=new Image();
 imageObj.src="local0.jpg?dummy=8484744"
 imageObj.onload=function()
 {
   var c = document.getElementById("canvas");
   var ctx = c.getContext("2d");
   ctx.drawImage(imageObj,0, 0,canvas.width,canvas.height);
   setTimeout(timedRefresh,1000);
 }
 function timedRefresh() 
 {
   imageObj.src = "local0.jpg?dummy=8484749"
 }
 </script>
 </body>
 </html>

var imageObj=新图像();
imageObj.src=“local0.jpg?dummy=84744”
imageObj.onload=函数()
{
var c=document.getElementById(“画布”);
var ctx=c.getContext(“2d”);
drawImage(imageObj,0,0,canvas.width,canvas.height);
设置超时(timedRefresh,1000);
}
函数timedRefresh()
{
imageObj.src=“local0.jpg?dummy=84749”
}

您的函数
timedRefresh
向图像添加随机值

 function timedRefresh() 
 {
   imageObj.src = "local0.jpg?dummy=" + Math.floor((Math.random() * 10000) + 1);
 }
请尝试以下代码

var-imageObj=新图像();
imageObj.onload=函数(){
drawOnCanvas();
设置超时(timedRefresh,1000);
}
//在分配负载后设置src
imageObj.src=“local0.jpg?dummy=“+Math.random();
函数timedRefresh(){
imageObj.src=“local0.jpg?dummy=“+Math.random();
//drawOnCanvas();//闪烁是由于这一行,因为它试图绘制图像加载,所以我对其进行了注释…现在它应该可以工作了。。。
}
函数drawOnCanvas(){
var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
clearRect(0,0,canvas.width,canvas.height);
ctx.drawImage(imageObj,0,0,canvas.width,canvas.height);
}

在设置源之前,您需要定义onload。它可以工作,但是有没有办法不闪烁?谢谢。