实现全局可扩展/可覆盖的ajax加载器

时间:2013-08-01 09:12:02

标签: javascript jquery inheritance

每当jquery ajax请求发生时,我正在显示一个ajax加载图像:

$(document).ajaxStart(function () {
 $(".ajaxLoadingIndicator").show();
  });

$(document).ajaxStop(function () {
  $(".ajaxLoadingIndicator").hide();
 });

我可以把它放在一个全局的JS文件中并在每个页面上都有它。现在,在某些点上使这种行为可以覆盖是明智的。子视图或页面可以执行附加逻辑或完全替换当前逻辑。目前我正在做这样的事情:

// global js file

var shsGlobal = new Globals();

function Globals() {

}

Globals.prototype.ajaxLoaderStart = function () {
    $(".ajaxLoadingIndicator").show();
}

Globals.prototype.ajaxLoaderStop = function () {
    $(".ajaxLoadingIndicator").hide();
}


$(document).ajaxStart(function () {
shsGlobal.ajaxLoaderStart();
});

$(document).ajaxStop(function () {
shsGlobal.ajaxLoaderStop();
});

在另一个页面上,我可能会这样做:

   shsGlobal.ajaxLoaderStart = function () {
    //additional logic here...

    //base method
    Globals.prototype.ajaxLoaderStart.call();
}

由于我没有那么多javascript,我不确定这是不是有点不稳定。但它确实有用。

0 个答案:

没有答案