识别 Ajax 请求的值何时增加

Recognizing when an Ajax request's value has increased

我正在使用 Ajax 请求从 php 文件中呼叫号码。目前我像这样反复将数字附加到页面..

$(document).ready(function () {
    setInterval(function() {
      $.ajax({
        url: '/number.php',
        type: 'get',
        success: function (output) {
            $(document.body).append(output);        }
      });
    }, 1000);
});

这个数字会每隔一小时左右增加一次,目前输出看起来像这样:

11 11 11 11 11 11 11

我真正想做的是在数字增加时触发一个 Jquery 函数。我一直试图在网上寻找答案,但我不完全确定要搜索什么。

我如何检测数字何时增加以及何时触发 Jquery 函数?

您可以将该值存储在 ajax 调用范围内可用的变量中。

$(document).ready(function () {
    // variable to store current value
    var currentValue = 0;
    setInterval(function() {
        $.ajax({
            url: '/number.php',
            type: 'get',
            success: function (output) {
                // parse returned value to integer
                var intVal = parseInt(output);
                // make comparison
                if (intVal > currentValue) {
                    currentValue = intVal;
                    $(document.body).append(output);
                } else {
                    // do something else or nothing at all
                }
            }
        });
    }, 1000);
});

每次您收到一个数字时,将其存储在一个全局变量中。 在 ready 函数之前定义它。

var lastNumber;

这样当您发出下一个请求时,您可以在代码中将返回的数字与上一个数字进行比较。如果它更大,那么执行你的功能。

if(output > lastNumber) {
    // call function here
}

lastNumber = output;

如果输出真的只是一个带有数字的字符串,那么:

var lastNumber = 0;
$(document).ready(function () {
    setInterval(function() {
      $.ajax({
        url: '/number.php',
        type: 'get',
        success: function (output) {
            var newNumber = parseInt(output);
            if (newNumber > lastNumber) {
              lastNumber = newNumber;
              yourCustomFunction(newNumber);
            }
        }
      });
    }, 1000);
});