每次通过单击按钮调用我的servlet时,都会收到ajaxStop()消息,但它不适用于ajaxStart(),我不知道为什么。这是我的代码。
$(document).ready(function () {
$("#continue").click(function () {
var period = $("#period").val();
var year = $("#year").val();
var dataString = {"period": period, "year": year};
$.ajax({
url: 'GenerateButtons',
data: dataString,
type: 'post',
cache: false,
success: function (data) {
$('#uploadFileButtons').html(data);
},
error: function () {
alert('error');
}
});
});
$(document).ajaxStart(function(){
console.log("ajaxStart");
}).ajaxStop(function(){
console.log("ajaxStop");
});
});
我顺便使用Firefox和NetBeans作为我的Web应用程序。
[更新编辑] 我在一个单独的项目中测试它,它工作正常。在这之后,我意识到其中一个ajax代码被这样奇怪的东西所调用。它触发ajaxStop()但不触发ajaxStart()。因此,我必须告诉那个做这件事的家伙,他必须解决这个问题。在任何情况下,似乎必须通过jQuery事件调用ajaxStop / ajaxStart才能正确触发。
$(document).ready(function () {
var p = document.getElementById("menssage").innerHTML;
if (p === "This period is already processed") {
$.ajax({
url: 'ShowDiffServlet',
data: dataString,
type: 'get',
cache: false,
success: function (data) {
$('#tabla').html(data);
},
error: function () {
alert('error');
}
});
$("#continue").prop('disabled', false);
$("#warningReprocess").show(1000);
}
if (p === "File was successfully uploaded!") {
var dataString;
$.ajax({
url: 'ShowDiffServlet',
data: dataString,
type: 'post',
cache: false,
success: function () {
},
error: function () {
alert('error');
}
});
$("#continue").prop('disabled', false);
$("#tableTitle").html("<hr><h1>Diff table</h1>");
}
$(document).ajaxStart(function(){
console.log("Starting loader");
$loader.addClass("loading");
}).ajaxStop(function(){
console.log("Stopping loader");
$loader.removeClass("loading");
});
});