刷新图像PHP和Javascript

Dou*_*eux 2 javascript php jquery image comet

我正在使用一个名为APE的Comet,Realtime引擎,我使用jQuery来刷新PHP图像.最初我加载这样的图像:

<div id="container">
<img src="image.php" style='background: url(../assets/load.gif) no-repeat center center;margin-left:42px;' alt=' Loading ...' width="500px" height="300px" />
</div>
Run Code Online (Sandbox Code Playgroud)

然后当我收到一个事件时,我这样做:

$("#container").empty();
$("#container").html('<img src="image.php?device='+device+'" style="background: url(../assets/load.gif) no-repeat center center;margin-left:42px;" width="500px" height="300px" alt=" Loading ..."/>');
Run Code Online (Sandbox Code Playgroud)

device是我从事件中收到的var,所以例如我得到device1,一切正常(图像实际上是图表),标题更改为"device1",并绘制最后5分钟

但是,我的问题是每次收到一个事件,在这个初始事件之后,日期仍然是相同的五分钟时间.我的设备每次都是相同的,但在我的脚本中我计算5分钟前到当前时间的时间纪元,但是这个脚本似乎没有更新图像.是缓存还是什么?

我已经尝试在页面顶部使用它:

<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
?>
Run Code Online (Sandbox Code Playgroud)

我可以等待大约10分钟,发送一个事件,但时间段仍然是从初始加载,我认为"empty()"将清除容器,重新加载图像,因此重新运行脚本.任何建议都会有帮助!

谢谢

Sha*_*had 7

一种常见的方法是在包含unix时间戳的查询字符串中添加一个普通的var; 浏览器将每个调用视为对唯一图像的调用.例如

'image.php?device=' + device + '&t=' + Math.round((new Date()).getTime() / 1000);
Run Code Online (Sandbox Code Playgroud)

因此它不认为它有缓存的图像.(虽然它会继续任何缓存策略导致此问题)