jQuery延迟方法和ajax beforeSend()

JuK*_*uKe 5 javascript ajax jquery

通过使用 $.ajax 中的延迟对象

  • 成功回调可以替换为 deferred-method done()
  • 错误回调 acn 替换为 deferred-method fail()
  • 并且完整的回调可以被替换为 always()

通过使用

var jqxhr = $.ajax({
                url: Config.baseUrl+"/ajax/favourites/set-favourite.ajax",
                dataType: "json",
                data: attrs,
                type: "POST",
                beforeSend: function(){
                    console.log("before send");
                }
            });
Run Code Online (Sandbox Code Playgroud)

我如何beforeSend-callback通过使用延迟对象来实现?

为什么我不在$.ajax函数内部使用 beforeSend-callback ?因为请求是在模型实例(http://canjs.com/docs/can.Model.model.html#section_Non_standardServices)内,所以模型对象执行请求和所有其他suff,比如操纵 DOM 将在延期的对象。我想在发送 ajax 请求之前操作 DOM。

我怎么能那样做?

125*_*748 -1

您可以将全局 jQuery 事件附加ajaxStart到触发 AJAX 请求的任何元素。这本质上应该复制beforeSend.

$(".ajax").ajaxStart(function() {
    $(".document").append("AJAX begun");
});
Run Code Online (Sandbox Code Playgroud)

小提琴