仅在ajax请求完全完成后才执行js函数

时间:2011-11-25 16:07:50

标签: javascript asp.net jquery

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

如何实现这一点。

3 个答案:

答案 0 :(得分:16)

您应该使用$.ajaxComplete();

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

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

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

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

答案 1 :(得分:5)

您可以使用任何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
        }
   });

答案 2 :(得分:1)

如果您希望针对特定呼叫执行此操作,则可能需要complete功能。如果你希望这是全局的,对于所有ajax调用,那么Nicola的答案应该是你需要的。

这是Ajax调用的jQuery documentation