修改jQuery getJSON - 在调用和回调时添加函数

时间:2014-05-29 11:10:49

标签: javascript jquery ajax getjson

我正在尝试创建一个跟踪AJAX调用何时开始和结束的加载器。它使用JSONP,因此.ajaxComplete()不起作用/不可靠。

理想情况下,我想修改getJSON,以便每次调用它时,也会调用addAJAX()。回调还将触发函数removeAJAX()。

目前我不得不通过向每个getJSON添加函数来实现这一点,其中有很多可能会有更多。

例如:

// Add ajax tracker
hl.addAJAX();

$.getJSON('someurl.com?callback=?',{ key: APIKEY }, function(json) {    
  // Remove the ajax tracker
  hl.removeAJAX();
});

为AJAX调用创建包装函数是一种选择,但我真的想知道jQuery是否可以这样修改?

2 个答案:

答案 0 :(得分:1)

是的,您可以覆盖jQuery来执行此类操作。我已经发布了一个类似问题的答案。所以不要重新发布,而是提供参考 -

How to get default error of ajax call

答案 1 :(得分:0)

技术上肯定可以做到 - jQuery只是JavaScript,所以你可以挖掘源.js文件,找到有问题的方法并修改你心中的内容。但是,这肯定不是简单的编辑,我强烈建议你不要修改第三方库的核心功能,除非你认为没有其他可行的选择,你已经准备好了它

我之所以这样说,是因为这意味着,当您尝试迁移到未来版本时,您必须维护这些更改,并且您可能会破坏对其他库或插件的支持期望某些功能以某种方式工作。

每次在回调中调用函数可能会很烦人,这是实现此类功能的推荐方法。