当有更新的图像可用时,如何防止旧图像出现在页面重新加载时
How to prevent old images from appearing on page reloads when there are updated images available
我必须不断更新我网站上的主图像,用户将转到该网站,但图像不会是更新版本,除非他们手动点击刷新。即使我输入"请点击刷新以查看更新的图像",用户也会忽略这一点,我必须通过电子邮件向他们发送刷新按钮。我尝试过使用Javascript进行初始索引.html重新加载到实际站点,如下所示
初始索引.html:
document.location.href='index2.php?code=reload_page'
然后在索引 2.php:
$the_code = $_GET['code'];
if($the_code == "reload_page")
{
$page = $_SERVER['PHP_SELF'];
$sec = "1";
header("Refresh: $sec; url=$page");
}
else
{
//load page regular
}
我像这样尝试过,但它不起作用,在您点击刷新按钮之前仍然有旧图像。还有其他方法可以使用PHP或javascript/jquery来实现这一点吗?
图像不刷新的问题可能是在 Web 浏览器或服务器代理等上缓存的问题。这是配置问题,可能不依赖于您。绕过这一点的简单技巧是将时间戳添加到 img url。每次在index.php
中重新生成内容时,只需向图像添加一些查询字符串,如下所示:
<?php
echo '<img src="my_image.png?ts='.time().'" />';
?>
它会欺骗您的浏览器和代理,使其成为另一个图像并防止缓存。
您可以使用计时器重新加载图像,并通过 AJAX 请求从另一个页面获取它们:
setInterval(function(){
$.ajax({
url: 'index2.php'
}).done(function ( data ) {
$('#image-div').html(data);
});
}, 10000); // wait 10 seconds
看看 jQuery.ajax
将以下内容放在页面的头部部分,这将每 5 秒重新加载一次您的内容。
<meta http-equiv="refresh" content="5">
如果浏览器仍然缓存图像,因为 url 没有更改,那么在图像 url 的末尾放置一个随机查询字符串。您可以使用时间戳。
<img src="image.jpg?<?php echo time(); ?>">
相关文章:
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 在检索数据时是否可以停止图像加载请求
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- jQuery:获取图像加载错误的详细信息
- 在safari和chrome中,js图像加载产生了奇怪的结果
- 图像加载不适用于 IE 8 或更低版本
- 这个图像加载功能有什么作用
- JavaScript 图像加载器不起作用
- 动态图像加载是否会减少服务器过载
- 跨来源图像加载被拒绝-仅限iPhone-简单图像上传
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时
- 使用JavaScript延迟图像加载
- 如果当前图像加载缓慢,如何加载其他图像
- HTML图像加载触发一个错误
- 将图像加载到localStorage,并将图像src设置到该位置
- jquery图像加载检查错误
- 将图像加载到织物画布背景中
- 需要在bootstrap css中单击时将图像加载为模态
- 正在显示加载..在将新图像加载到网站时播放动画
- 砖石事件:在图像加载和布局完成后调用事件