javascript html update img src - 这有啥问题? [复制]
Posted
技术标签:
【中文标题】javascript html update img src - 这有啥问题? [复制]【英文标题】:javascript html update img src - what's wrong with this? [duplicate]javascript html update img src - 这有什么问题? [复制] 【发布时间】:2015-03-29 03:50:45 【问题描述】:代码第一次工作,递归调用工作,但图像没有更新。注意: .src 不会改变 - 它只是在相机中每秒更新几次,所以如果我刷新它更新但不是通过递归函数调用的页面 - 我需要做什么才能让它更新?谢谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Image update from cam</title>
<script type="text/javascript">
var t;
function updateimg()
document.getElementById('camimg').src = "urlofimgfromcamera - this is valid url";
t = setTimeout('updateimg()', 2000);
</script>
</head>
<body>
<img id="camimg" src="" />
<script type="text/javascript">
t = setTimeout('updateimg()', 2000);
</script>
</body>
</html>
【问题讨论】:
对我来说很好用,但不要将字符串传递给setTimeout
,为什么你一直递归调用函数,它每次都做同样的事情
我猜网址会随着时间而改变,这就是为什么
【参考方案1】:
图像未更新,因为它被您的浏览器缓存并且您使用的是相同的 URL。尝试在图像 URL 中添加日期,您应该使用 setInterval 而不是递归调用:
var timer = setInterval(function()
var imgUrl = "image.png?v=" + new Date().getTime();
document.getElementById('camimg').src = imgUrl
,5000);
【讨论】:
有正确答案的人。 GET 请求被缓存,如果缓存标头在那里,它不会去服务器获取新图像。添加时间戳使其获得新图像。 就是这样 - 浏览器只是在缓存臭照片 我已经准备好踢我的电脑了——谢谢! 去过那里,这个问题会让你发疯。享受。 好的 - 现在我已经看到了行为,这是主题 - 你知道如何使用 javascript 清除页面的缓存吗?它真的在图像被缓存时构建......或者我可以预先使用一些脚本来告诉浏览器不要为页面缓存?【参考方案2】:正如@adeneo 所指出的,不要将字符串传递给setTimeout
函数,你甚至可以去掉括号。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Image update from cam</title>
<script type="text/javascript">
var t;
function updateimg()
document.getElementById('camimg').src = "urlofimgfromcamera - this is valid url";
t = setTimeout(updateimg, 2000);
</script>
</head>
<body>
<img id="camimg" src="" />
<script type="text/javascript">
t = setTimeout(updateimg, 2000);
</script>
</body>
</html>
【讨论】:
传递字符串是 100% 有效的,与 OPs 问题无关。 你是对的,感谢您指出这一点。以上是关于javascript html update img src - 这有啥问题? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
NaviCat SqlServer Windows 10 Update 1803 IM004 - Driver's SQLAllocHandle on SQL_HANDLE_ENV faile