JQuery更改在DIV中从aspx动态加载的图像

时间:2011-10-22 09:23:06

标签: jquery asp.net

我有一个DIV并在运行时从一个aspx文件中加载一个Image作为src。

我使用JQUERY .Post(..)发布aspx页面并获取Image并通过以下代码将该图像加载到div中。

    function UpdateCapticha() {

        $.post("../JqueryCapticha.aspx", {},
            function (data) {                                                                       
                $("div#CapDiv").html(data);
            });

    }

我在点击按钮时调用此函数并期望在div中使用不同的Image,因为每次都会发布 JqueryCapticha.aspx 。但每次我得到相同的图像。我认为 JqueryCapticha.aspx 没有发布,但Image正在缓存中。

有人可以建议我应该怎样做 JqueryCapticha.aspx 每次都会发布,并且应该有新的图片。

我也在浏览器上单独测试了 JqueryCapticha.aspx ,并且通过在每个帖子上提供不同的图像来正常工作。

先谢谢。

3 个答案:

答案 0 :(得分:0)

如果你认为它是缓存问题那么你可以做

$.ajaxSetup({
cache:false
});

和休息保持不变

function UpdateCapticha() {

    $.post("../JqueryCapticha.aspx",function (data){                                                                       
            $("div#CapDiv").html(data);
        });

}

使用$.post

时,您可以使用以下内容来阻止缓存
function UpdateCapticha() {
    var noCache = new Date().getTime();
    $.post("../JqueryCapticha.aspx",{noCache:noCache},function (data){                                                                       
            $("div#CapDiv").html(data);
        });

}

.ajaxSetup

答案 1 :(得分:0)

您可以使用$ .ajax函数阻止缓存:

$.ajax({
    url: "../JqueryCapticha.aspx",
    type: "POST",
    cache: false,
    complete: function (data) {
       $("div#CapDiv").html(data);
});

但是:$.post的文档说:

  

使用POST获取的页面永远不会被缓存,因此缓存和ifModified   jQuery.ajaxSetup()中的选项对这些请求没有影响。

所以看起来这实际上不是你的问题。我建议使用Firebug或类似工具来查看发送的网络请求,以确定实际传输的内容。

答案 2 :(得分:0)

附加动态查询字符串变量以防止缓存:

function UpdateCapticha() {
    var date = new Date()
    var ticks = date.getTime()

    $.post("../JqueryCapticha.aspx?ticks=" + ticks, {},
        function (data) {                                                                       
            $("div#CapDiv").html(data);
        });

}