发布日期:2016-03-08 21:15:03

有一个简单的需求就是如何使页面上的一个图片内容实现实时刷新;

什么意思呢?这样一个场景:

页面上有一个图片,src指向后台的一个图片链接,如名为test.jpg的图片。图片本身为后台实时产生更新的,如新浪股票信息走势图片。每一秒的图形都可能在变化。如何使页面实现这样的动态更新?简单的办法就是:

var img = document.getElementById("test");
img['src'] = imgurl;

通过setInterval来定时刷新图片。这里需要对imgurl做个简单处理,即加上queryString。如加上?version=currenttimestamp。这样能保证每次请求都不一样,图片得到定时刷新。

<img id=test alt=""  src="http://www.soosmart.com/images/live/test.gif"  />

<script language="javascript" type="text/javascript">
    var d = new Date(); 
    document.getElementById("test").src ="http://www.soosmart.com/images/live/test.gif?ver=" +  d.getTime();
</script>

这种方法总需要加上一个尾巴,总令人不爽。如果需要对页面的图片请求加no-cache head又需要在web server端做些配置,也不是完美解决方法,尤其当图片来源是其他网站的时候,我们没有办法控制。有没有更好的解决方案?参考了下面的一些讨论,没有发现更好的方法。

参考文档:

Two Simple Rules for HTTP Caching
Image Caching in Internet Explorer
How to force a web browser NOT to cache images
disable cache for some images 

发表评论