【问题标题】:Image is not changing instantly图像不会立即改变
【发布时间】:2023-04-04 06:07:01
【问题描述】:

在服务器成功响应后,我正在更改 img,但它不会立即更改。我必须重新加载页面才能看到新图像。

将照片上传到服务器后,下面是我用于用户 ID ${userId} 的个人资料照片的 URL。在 url 的末尾我使用随机数来避免缓存。

var img = "photohandler/fetchprofilepics/${userId}/profilePhoto/<%=new Random().nextInt()%>";
$(".profilePhoto").attr("src",img);

如果在浏览器中粘贴相同的 url 它的显示图像。

在 spring/servlet 中的服务器端:

byte bytes[] = new byte[byteBuffer.remaining()];            
byteBuffer.get(bytes, 0, bytes.length);
bufferedOutputStream = new BufferedOutputStream(response.getOutputStream());
bufferedOutputStream.write(bytes);

【问题讨论】:

    标签: jquery spring servlets


    【解决方案1】:

    试试吧:

    var img = "photohandler/fetchprofilepics/${userId}/profilePhoto/<%=new Random().nextInt()%>";    
    $(".profilePhoto").attr("src",img + '?'+ $.now());
    

    我猜这将消除缓存问题。

    编辑: 好的,我认为您的问题是您认为在页面呈现后服务器端代码仍在客户端处理...

    【讨论】:

    • @Satpal 为什么会更好?
    • &lt;%=new Random().nextInt()%&gt; 已经通过了。每次图片路径都会改变
    • @Manish 是什么意思?你想让它给出新的随机图像还是什么?我真的不确定你在这里期待什么。您应该使用具体示例和更多代码上下文来改进您的问题。在您编辑的评论之后,您确定每次调用此 sn-p 时都会生成一个新路径吗?那你怎么称呼它?
    • 问题是新路径总是与以前的路径相同
    • 是的,因为您正在使用服务器端代码客户端设置新路径,然后只处理一次:)
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    相关资源
    最近更新 更多