【问题标题】:Execute a js function only after the ajax request fully compleated只有在ajax请求完全完成后才执行js函数
【发布时间】:2011-11-25 16:07:49
【问题描述】:

我只想在 jquery ajax 调用完全完成后执行 js 函数。(在成功和错误事件完成后)。即在ajax调用之后将传入的数据放入一个元素。

如何实现这一点。

【问题讨论】:

  • 你有没有尝试过?

标签: javascript asp.net jquery


【解决方案1】:

你应该使用$.ajaxComplete();

$(document).ajaxComplete(function() {
  alert("compete");
});

这将在您在页面上进行的每次 Ajax 调用后触发

否则你使用ajax() 并设置完整的属性

$.ajax({
  url: "myurl",
  complete: function(){
              alert("complete");
            }
  //set all the other options as usual

【讨论】:

    【解决方案2】:

    您可以使用任何 jQuery AJAX 方法的回调来延迟另一个函数的执行,直到请求完成。

    例子:

       $.post('/some/url', somedata, function() {
            // put the code you want to execute on completion here
       });
    

    对于更复杂的场景,请使用实际的ajax 方法,它为您提供了成功、完成、错误和其他事件的挂钩。通常,您只需要成功和错误。

       $.ajax( '/some/url', {
            data: somedata,
            type: 'post',
            success: function(result) {
               // success code execution here
            },
            error: function(xhr,status,error) {
               // error code here
            },
            complete: function(xhr,status) {
               // completion code here
            }
       });
    

    【讨论】:

      【解决方案3】:

      如果您想为特定呼叫执行此操作,那么complete 函数可能就是您所需要的。如果您希望它是全局的,对于所有 ajax 调用,那么 Nicola 的答案应该是您所需要的。

      这是用于 Ajax 调用的 jQuery documentation

      【讨论】:

        猜你喜欢
        • 2011-01-30
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 2018-09-23
        • 1970-01-01
        • 1970-01-01
        • 2011-08-12
        • 2017-09-23
        相关资源
        最近更新 更多