每当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,我不确定这是不是有点不稳定。但它确实有用。