每当像这样发生 jquery ajax 请求时,我目前正在显示一个 ajax 加载图像:
$(document).ajaxStart(function () {
$(".ajaxLoadingIndicator").show();
});
$(document).ajaxStop(function () {
$(".ajaxLoadingIndicator").hide();
});
我可以将它放在一个全局 JS 文件中,并在每个页面上都有它。现在让这种行为在某些时候被覆盖是很明智的。子视图或页面可能会执行附加逻辑或完全替换当前逻辑。目前我正在做这样的事情:
//全局js文件
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,我不确定这是否有点不稳定。不过,它有效。