#jquery #ajax
#jquery #ajax
Вопрос:
Я написал вызов ajax, который вызывает rest API, при каждом вызове он извлекает данные из базы данных, если база данных обнаружила, то она должна увеличить счетчик на 1, чтобы вычислить общее количество найденных записей.
function myFunction() {
var count = 0
$.ajax({
url: "http://localhost:6060/rest/getData",
type: "get",
success: function(result) {
count ;
$.each(result, function(key, value) {
$("#patienthide").css("display", "block");
$("#patient").append(value.name "<green>waiting<green>" "<br>");
deleteFunction(value.id);
});
}
console.log(count);
});
}
$(document).ready(function() {
setInterval(myFunction, 10000);
$("#patienthide").css("display", "none");
});
но он всегда выводит 1 на консоль. но вывод должен увеличивать счетчик на единицу при каждом успешном вызове
Комментарии:
1. Ваша
count
переменная определяется локально в функции. Поэтомуcount
всегда будет 0 для каждого выполнения функции. Переместитьvar count=0
объявление функции выше2. Как указано выше, и перемещение
console.log(count)
внутриsuccess:
(где он сейчас находится в предоставленном коде, приведет к синтаксической ошибке, поэтому предполагаю, что он уже находится внутри success)
Ответ №1:
Ваша count
переменная определяется локально в функции. Таким образом, счетчик всегда будет равен 0 для каждого выполнения функции. Переместить var count=0
объявление функции выше
var count = 0;
function myFunction() {
$.ajax({
url: "http://localhost:6060/rest/getData",
type: "get",
success: function(result) {
count ;
$.each(result, function(key, value) {
$("#patienthide").css("display", "block");
$("#patient").append(value.name "<green>waiting<green>" "<br>");
deleteFunction(value.id);
});
console.log(count);
}
});
}
$(document).ready(function() {
setInterval(myFunction, 10000);
$("#patienthide").css("display", "none");
});