【问题标题】:Jquery function load and cache with imageJquery函数加载和缓存图像
【发布时间】:2013-12-13 13:11:14
【问题描述】:

我尝试解决这个问题,但没有得到,我在 jquery 加载 url 中的脚本,在这个 url 中显示一个图像,在这种情况下,这个图像总是有相同的名称“pic.jpg”,这个图像每小时都会改变,但是一直显示相同的图片,显示新图像没有变化

我的脚本是这样的,我尝试使用 rand url 和 cache:false 修复,但继续问题

<script>

$.ajaxSetup ({
cache: false
});

jQuery(document).ready(function(){

var auto_refresh = setInterval(

function ()
{   

var randnumber=Math.floor(Math.random()*999999999999);
jQuery("#login_data_top_pic_profile").load("index_users.php?load_pic_profile=ok&rand_n="+randnumber);   

},3000);


});
</script>

我也把 php 删除缓存头并继续没有工作

可以通过我的小脚本获得一些帮助来解决这个问题,请,谢谢你的帮助,问候

P.D:当从脚本调用 index_users.php 时,我总是有这个代码:

<?php
if ($_REQUEST[load_pic_profile]=="ok")
{
?>
<img src="profile_user/user1/pic.jpg">
<?php
}
else
{
?>
<img src="profile_user/user1/no_pic.jpg">
<?php
}
?>

名为 pic.jpg 的图像总是改变但没有他的名字

【问题讨论】:

  • 如果您转到index_users.php?load_pic_profile=ok 并多次加载页面,您会得到一张新图片吗?
  • 是的,如果我去加载网址并更改图像是显示新图像,我认为缓存有问题,因为始终使用相同的名称图片
  • 错误,我认为您将随机数附加到 ajax 请求而不是图像 URL。您需要将随机数附加到图像 URL。
  • index_users.php 提供图像本身还是元素?
  • 怎么办?如果将该随机数附加到图像图像更改图像的名称.....并且图像总是具有相同的名称,如果你告诉我如何修复完美

标签: jquery load browser-cache


【解决方案1】:

图片由您的浏览器缓存。最简单的解决方案是修改您的 HTML

<img src="pic.jpg?<?php echo time(); ?>" />

您还可以在图片所在的目录中添加一个.htaccess 文件

<Files "pic.jpg">
   Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
</Files>

【讨论】:

    【解决方案2】:

    你想在那里做什么?我看到的是,您开始加载页面...而不是设置加载图像的时间间隔...在您的情况下 3 秒后。是改变图像的脚本吗?您尝试加载的内容一小时后真的是新图像吗? 抱歉在这里发帖...通常我会在评论中发帖,但我必须少加分。

    【讨论】:

    • 例如,用户可以从其他页面更改图像,例如脚本每 3 秒加载该 url,如果图片是其他简单的显示,则加载的想法称为此 url并且图片始终是相同的名称,如果史诗更改,脚本调用相同的 url 并且必须显示新图片,但是将图片上传到配置文件时的名称相同,仅更改图片但使用同名,我测试并且一切正常,如果重新加载所有页面,我会看到新图像,但如果我尝试用 jquery 重新加载没有变化,就好像图像在缓存中并且只加载第一张图像
    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 2011-11-23
    • 2018-08-03
    • 1970-01-01
    • 2013-03-29
    • 2012-03-13
    • 2011-07-01
    • 1970-01-01
    相关资源
    最近更新 更多