编程语言
首页 > 编程语言> > 刷新图像PHP和Javascript

刷新图像PHP和Javascript

作者:互联网

我正在使用称为APE的Comet实时引擎,并且正在使用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>

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

$("#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 ..."/>');

设备是我从事件中收到的变量,因此,例如,我得到了device1,一切正常(图像实际上是一个图表),标题更改为“ device1”,并绘制了最后5分钟

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

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

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

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

谢谢

解决方法:

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

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

这样它就不会认为它具有缓存的图像. (尽管它将继续导致该问题的任何缓存策略)

标签:javascript,php,jquery,image,comet
来源: https://codeday.me/bug/20191012/1896695.html