Jquery / ajax缓存问题 - Firefox不会刷新修改后的图像

时间:2012-01-31 23:54:09

标签: php jquery ajax caching

我正在制作一个上传和裁剪图片的脚本。它是基于jquery / ajax的。这个想法是在上传图像之后,它在div中显示而不重新加载页面。这是用jquery ajax函数完成的。然后每个图像都有一个“裁剪”按钮,单击该按钮可打开一个简单模式窗口,在该窗口中可以裁剪并保存图像。保存后,模态窗口关闭并通过使用ajax再次加载内容来刷新div。这是我遇到了问题。 Firefox出于某种原因在屏幕上保留旧图像,并且不会刷新它以显示它的裁剪版本。

我已经从load()函数更改为ajax()函数(使用cashe:false param)。我添加了php no-cache标头,我还将随机字符串添加到调用的url中。在Firefox上没有任何帮助(在Chrome上没问题)

有什么想法吗?

代码:

function load_posted_images(){

$.ajax({
    url: "/ajax/ad_wizard_images.php?uid=1&rand=" + new Date().getTime(),
    type: "POST",
    cache: false,
    success: function(data) {
        $('#image-list').html(data);
    }
});}

4 个答案:

答案 0 :(得分:1)

在任何情况下,您都可以尝试以不同的名称保存裁剪的图像(例如,在末尾添加几个数字)。然后,当您刷新div时,指定新的图像名称。

答案 1 :(得分:0)

您是否有机会发布用于刷新图像的代码?

你不能只改变图像上的src属性,以保存使用ajax获取图像吗?

$('img').attr('src', $('img').attr('src')+new Date().getTime();)

答案 2 :(得分:0)

我一直处于类似情况,ajax返回的内容没有刷新,我最终为返回的内容添加了唯一的字符串,这似乎是诀窍....只是为了使返回的内容与可能的内容不同在缓存时,jQuery已经为请求添加了一个唯一的变量值,但这对我的情况没有任何影响。

答案 3 :(得分:0)

这对我有用(在php函数中):

$ time = date('H-i-s');

echo“”

它不会更改文件名但会使图像src唯一并阻止缓存问题。