【问题标题】:JQuery change Image dynamically loaded from aspx in DIVJQuery更改从DIV中的aspx动态加载的图像
【发布时间】:2011-10-22 19:08:00
【问题描述】:

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

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

    function UpdateCapticha() {

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

    }

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

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

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

提前致谢。

【问题讨论】:

    标签: jquery asp.net


    【解决方案1】:

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

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

    但是:$.post 的文档说:

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

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

    【讨论】:

      【解决方案2】:

      如果你认为是缓存问题,那么你可以这样做

      $.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

      【讨论】:

        【解决方案3】:

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

        function UpdateCapticha() {
            var date = new Date()
            var ticks = date.getTime()
        
            $.post("../JqueryCapticha.aspx?ticks=" + ticks, {},
                function (data) {                                                                       
                    $("div#CapDiv").html(data);
                });
        
        }
        

        【讨论】:

          猜你喜欢
          • 2014-05-16
          • 1970-01-01
          • 2020-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-20
          • 2017-09-30
          相关资源
          最近更新 更多