【问题标题】:Content refresh issue on Jquery ajax successJquery ajax成功的内容刷新问题
【发布时间】:2011-12-06 10:17:50
【问题描述】:

我使用下面的 jquery ajax 请求。成功后,“ajaxRenderSuccess”函数可能会持续 500 毫秒到 1200 毫秒,因此在运行此函数之前,我会在我的 UI 中突出显示一个新步骤(一种进度条):我只是从上一步中删除 ui-state-highlight 类( “renderingPhase”),并将其添加到最后一步(“outputPhase”)。

一切都按预期工作,除了我从未看到我的 outputPhase 突出显示,即使 ajaxRenderSuccess 函数持续超过 1 秒:似乎它绝对希望在刷新页面之前执行整个“成功”ajax 事件?

如果我在 addClass 和 ajaxRenderSuccess 调用之间显示 alert('output phase highlight') 来临时化,那么它的工作原理是正确突出显示最后一步...

这是一个已知问题和/或正常行为吗?在这个“成功”的 jquery 事件中,我能做些什么来强制显示刷新?

谢谢!

   var self = this;
   jQuery.ajax({
       type: "POST",
       url: renderingURL,
       contentType:"text/html; charset=UTF-8",
       success: function (respJSON){
            jQuery( "#"+self.request.namespace+"renderingPhase" ).removeClass('ui-state-highlight'); 
            jQuery( "#"+self.request.namespace+"outputPhase" ).addClass('ui-state-highlight');      
            self.ajaxRenderSuccess(respJSON);
       }
      }

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    函数看起来完全没问题,所以选择器可能有问题。

    尝试做一个

    console.log(jQuery( "#"+self.request.namespace+"outputPhase" ));  
    

    并查看是否在 firebug(或类似的)中正确选择了元素。

    可能是标签中的 class= 而不是 id=,但上述日志会告诉您这是否是问题所在。同时保持调试器窗口打开以查看任何错误

    【讨论】:

    • 感谢您的建议。我尝试了 console.log(jQuery("#"+self.request.namespace+"outputPhase")),它返回了预期的 outputPhase 按钮​​,这不是选择器问题,因为如果我使用警告框进行临时处理,我的按钮会正确突出显示.我在 chrome 控制台或 firebug 中没有看到任何错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多