Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查由计时器定期设置的变量值是否发生变化?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何检查由计时器定期设置的变量值是否发生变化?

Javascript 如何检查由计时器定期设置的变量值是否发生变化?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个jQuery: setInterval(function() { var myRequest = $.ajax({ //ask php to count rows from mysql table //data gets loaded with integer value }); myRequest.done(function(data){ var rowcount = JSON.stringify(data

我有一个jQuery:

setInterval(function() { 
    var myRequest = $.ajax({ 
        //ask php to count rows from mysql table
        //data gets loaded with integer value
    });

    myRequest.done(function(data){ 
        var rowcount = JSON.stringify(data.data[0]).replace(/\"/g, ""); //integer value
    });

}, 5000);
因此,基本上,每5秒从MySql表中计算行数


我的问题是,当一个新行被添加到表中时,
rowcount
将改变(例如+1)。如何让jQuery知道有更改?

跟踪最后一次行数并进行比较,如Scott的评论中所述:

让rowcount=0;
函数onRowcountChange(){
//在这里做些漂亮的事
}
setInterval(函数(){
var myRequest=$.ajax({
//让php计算mysql表中的行数
//使用整数值加载数据
});
myRequest.done(函数(数据){
var newrows=JSON.stringify(data.data[0]).replace(//\“/g,”);//整数值
if(newrows!==rowcount){//如果值已更改
onRowcountChange();//执行更新代码
rowcount=newrows;//将rowcount设置为新值
}
});
}, 5000);

您只需将旧值存储在范围更大的变量中(即在计时器函数之外声明
rowcount
)然后在您的
done
函数中,比较新值和旧值。如果它们不同,请执行一些操作。在检测到代码更改时执行代码?我希望您的服务器能够处理所有这些调用。请明确您所说的
是什么意思,我如何让jQuery知道有更改?
并解释其背后的原因为什么要投否决票?