jQuery ajaxComplete()检测prototypejs ajax调用吗?

时间:2016-01-08 12:02:58

标签: javascript jquery ajax magento prototypejs

(function($){
    $(document).ready(function(){   
      $(document).ajaxComplete(function() {
         console.log("finished")
      });
    });
})(jQuery);

在页面上进行原型调用后,这不会触发。

但是这个原型代码正在运行:

Ajax.Responders.register({
  onCreate: function() {
    console.log("start")
  },
  onComplete: function() {
    console.log("finished")
  }
});

以前在页面上加载了多个jquery库时遇到了ajaxcomplete的问题,但现在情况并非如此。

jQuery ajaxComplete()是否检测到原型ajax调用?

谢谢!

1 个答案:

答案 0 :(得分:4)

简答:没有

答案很长:因为jQuery和PrototypeJS以不同的方式抽象基本的XHR功能,他们以自己的方式跟踪活动XHR请求的数量,并触发他们自己的回调。

例如在PrototypeJS中,当{ajax请求分别开始或完成时,activeRequestCount递增或递减

Ajax.Responders.register({
  onCreate:   function() { Ajax.activeRequestCount++ },
  onComplete: function() { Ajax.activeRequestCount-- }
});