Ajax 调用输出和超时
Ajax call output and timeout
我构建了一个 ajax 计数器,它最多输出 6 位数字 - 例如“120398”并重复呼叫
function updateNumbers(){
$.ajax({
url: totalnumbers.ajaxurl,
data: {
action: 'numberstotal'
},
success: function (response) {
var numbers = response.toString(10).replace(/\D/g, '0').split('').map(Number);
//console.log(numbers);
var newHTML = [];
for (var i = 0; i < 6; i++) {
newHTML.push('<span>' + numbers[i] + '</span>');
}
$('.counter').html(newHTML.join(""));
}
});
setTimeout(updateMinutes, 5000);
}
updateNumbers();
到目前为止这有效。
问题一:
现在只有 4 位数字 (1234) 我仍然需要这样的总计输出
<span>0</span>
<span>0</span>
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
我得到的是
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>undefined</span>
<span>undefined</span>
问题二:
当总数达到200000时,我想退出setTimeout-Function。但是我不知道如何在设置超时之前从 ajax 调用中获取响应以进行检查。
帮助会很大。看来我快到了:(
经过一番思考,我实现了它:
function updateNumbers(){
$.ajax({
url: totalnumbers.ajaxurl,
data: {
action: 'numberstotal'
},
success: function (response) {
if (response < 20000) {
var stringlength = response.length;
var numbers = response.toString(10).replace(/\D/g, '0').split('').map(Number);
var newNumbers = numbers;
for (var i = stringlength; i < 7; i++) {
newNumbers.unshift(0);
}
var totalNumbers = $.map(newNumbers, function(num) {
return('<span>' + num + '</span>');
});
$('.counter').html(totalNumbers.join(""));
setTimeout(updateNumbers, 5000);
}
else {
var numbers = response.toString(10).replace(/\D/g, '0').split('').map(Number);
var totalNumbers = $.map(numbers, function(num) {
return('<span>' + num + '</span>');
});
$('.counter').html(totalNumbers.join(""));
}
}
});
}
updateNumbers();
我构建了一个 ajax 计数器,它最多输出 6 位数字 - 例如“120398”并重复呼叫
function updateNumbers(){
$.ajax({
url: totalnumbers.ajaxurl,
data: {
action: 'numberstotal'
},
success: function (response) {
var numbers = response.toString(10).replace(/\D/g, '0').split('').map(Number);
//console.log(numbers);
var newHTML = [];
for (var i = 0; i < 6; i++) {
newHTML.push('<span>' + numbers[i] + '</span>');
}
$('.counter').html(newHTML.join(""));
}
});
setTimeout(updateMinutes, 5000);
}
updateNumbers();
到目前为止这有效。
问题一:
现在只有 4 位数字 (1234) 我仍然需要这样的总计输出
<span>0</span>
<span>0</span>
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
我得到的是
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>undefined</span>
<span>undefined</span>
问题二:
当总数达到200000时,我想退出setTimeout-Function。但是我不知道如何在设置超时之前从 ajax 调用中获取响应以进行检查。
帮助会很大。看来我快到了:(
经过一番思考,我实现了它:
function updateNumbers(){
$.ajax({
url: totalnumbers.ajaxurl,
data: {
action: 'numberstotal'
},
success: function (response) {
if (response < 20000) {
var stringlength = response.length;
var numbers = response.toString(10).replace(/\D/g, '0').split('').map(Number);
var newNumbers = numbers;
for (var i = stringlength; i < 7; i++) {
newNumbers.unshift(0);
}
var totalNumbers = $.map(newNumbers, function(num) {
return('<span>' + num + '</span>');
});
$('.counter').html(totalNumbers.join(""));
setTimeout(updateNumbers, 5000);
}
else {
var numbers = response.toString(10).replace(/\D/g, '0').split('').map(Number);
var totalNumbers = $.map(numbers, function(num) {
return('<span>' + num + '</span>');
});
$('.counter').html(totalNumbers.join(""));
}
}
});
}
updateNumbers();