在循环中重新加载图像(JavaScript/HTML)

在循环中重新加载图像(JavaScript/HTML),javascript,html,Javascript,Html,我有一个Python脚本,每隔几秒钟更改一个图像,我需要在网站上显示该图像,而用户无需每隔几秒钟重新加载页面。我不是最擅长网页设计的,所以任何帮助都将不胜感激 我尝试了以下代码: function refreshImage(imgElement, imgURL){ // create a new timestamp var timestamp = new Date().getTime(); var el = document.getElementById(imgEle

我有一个Python脚本,每隔几秒钟更改一个图像,我需要在网站上显示该图像,而用户无需每隔几秒钟重新加载页面。我不是最擅长网页设计的,所以任何帮助都将不胜感激

我尝试了以下代码:

function refreshImage(imgElement, imgURL){    
  // create a new timestamp 
  var timestamp = new Date().getTime();  

  var el = document.getElementById(imgElement);  

  var queryString = "?t=" + timestamp;    

  el.src = imgURL + queryString;    
}    

while (true){
  refreshImage(cameraFeed, "image.jpg")
}    
在一个循环中,但我无法让它工作

如果有人能帮助我,我将不胜感激。

而不是使用

var queryString=“?t=“+时间戳

您可以试试它
Math.random()

var queryString=“?”+Math.random()

正如Ozgur Sar在评论中所建议的,您可以使用
setInterval()
。例如:

const refreshImage=(imgElement,imgURL)=>()=>
imgElement.src=imgURL+“?”+新日期().getTime();
const cameraFeed=document.querySelector(“.cameraFeed”);
设置间隔(刷新图像(cameraFeed,)https://loremflickr.com/320/240"), 3000);

我发现了如何通过刷新页面而不是尝试重新加载图像来刷新页面

<META HTTP-EQUIV="REFRESH" CONTENT="1"></META>


使用
while(true)代替无限循环
您可以像这样尝试使用setinvval()
setInterval(refreshImage(){refreshImage(cameraFeed,“image.jpg”);},3000)
每3秒调用一次refreshImage函数。另一种方法是,如果您不想在某个精确时间内使用
setInterval
刷新图像,则使用提供全双工通信通道的。您可以使用socket.io,它可以在和中实现。只有当Python脚本要求重新加载图像时,它才会重新加载图像。不起作用。我认为函数可能有问题。timestamp确保每次都有一个新值,以避免从缓存加载它-1图像仍不更新。我正在引用一个本地文件,这和它有关系吗?本地文件真的改变了吗?没有完整的示例很难确定问题,但在我提供的代码片段中,URL保持不变,只有参数在更改(正如您在问题中提供的)。对我来说,它在我的本地网站上运行得很好。这将重新加载整个页面及其所有内容。很高兴这对你来说可能没问题,但它不是很有效。幸运的是,这个页面纯粹是为了显示这个单一的图像。我知道这是一种非常不有效的方法,但目前它已经达到了目的。