Javascript 将ajax响应数据存储到数组中,并将其与最后的值进行比较

Javascript 将ajax响应数据存储到数组中,并将其与最后的值进行比较,javascript,php,arrays,ajax,Javascript,Php,Arrays,Ajax,我被这些难住了。我想创建一个每4秒运行一次的函数。现在,我的函数将从数据库中获取所有队列id,并将其反复存储在数组中,存储后,我将每4秒对其进行一次又一次的比较,如果有更改,那么我将执行一些操作 执行示例:如果我的数据库响应的队列id为:1,2,3,4,5,那么我将存储数组中的这些数据。在存储它之后,如果它返回1,2,4,5或1,2,3,5,我将执行某些操作,但如果它返回与1,2,3,4,5相同的操作,则我将不执行任何操作 我不知道如何在javascript中存储或创建数组。请帮助我: func

我被这些难住了。我想创建一个每4秒运行一次的函数。现在,我的函数将从数据库中获取所有队列id,并将其反复存储在数组中,存储后,我将每4秒对其进行一次又一次的比较,如果有更改,那么我将执行一些操作

执行示例:如果我的数据库响应的队列id为:1,2,3,4,5,那么我将存储数组中的这些数据。在存储它之后,如果它返回1,2,4,5或1,2,3,5,我将执行某些操作,但如果它返回与1,2,3,4,5相同的操作,则我将不执行任何操作

我不知道如何在javascript中存储或创建数组。请帮助我:

function check_getqueue(clinicID, userID) {
  $.ajax({
    url: siteurl+"sec_myclinic/checkingUpdates/"+clinicID+"/"+userID,
    type: "POST",
    dataType: "JSON",
    success: function(data) {
      for(var i=0;i<data.length;i++) {
        var tmpCountQ = data[i]['queue_id'];
      };

      if (tmpCountQ < lastcountQueue) { 

      }
      lastcountQueue = tmpCountQ;
    }
  });
}
function check\u getqueue(临床ID、用户ID){
$.ajax({
url:siteurl+“sec_myclinic/checkingUpdates/”+clinicID+“/”+userID,
类型:“POST”,
数据类型:“JSON”,
成功:功能(数据){

对于(var i=0;i使用push,并在ajax请求之外声明数组。现在一切正常

function check_getqueue(clinicID, userID) {
  var tmpCountQ = [];
  var lastCon = [];
  $.ajax({
    url: siteurl+"sec_myclinic/checkingUpdates/"+clinicID+"/"+userID,
    type: "POST",
    dataType: "JSON",
    success: function(data) {
      for(var i=0;i<data.length;i++) {
        tmpCountQ.push(data[i]['queue_id']);
      };
      if(typeof lastCon[0] != "undefined")
      {
        for(j=0;j < tmpCountQ.length;j++)
        {
          if(tmpCountQ[j] != lastCon[j])
          {
            lastCon[j] = tmpCountQ[j];
          } 
        }
      }
      else
      {
       lastCon = tmpCountQ;
      }

      console.log(tmpCountQ);
    }
  });
}
function check\u getqueue(临床ID、用户ID){
var tmpCountQ=[];
var lastCon=[];
$.ajax({
url:siteurl+“sec_myclinic/checkingUpdates/”+clinicID+“/”+userID,
类型:“POST”,
数据类型:“JSON”,
成功:功能(数据){

对于(var i=0;i,您需要跟踪最后收到的ID集,并将它们与新的ID集进行比较。当发现差异时,调用doSomething()并更新记录,以便下次运行

为了让事情更快,你可以先检查长度。更多信息在下面的评论栏

var previousQueueIDs = [];

function doSomething() {
  // do something
  // ...
  // set timer for the next run
  setTimeout(check_getqueue, 4000);
}

function check_getqueue(clinicID, userID) {
  $.ajax({
    url: siteurl+"sec_myclinic/checkingUpdates/"+clinicID+"/"+userID,
    type: "POST",
    dataType: "JSON",
    success: function(data) {
      var queueIDs = [];
      if(previousQueueIDs.length != data.length) {
        previousQueueIDs = queueIDs;
        return doSomething();
      }
      // length didn't change, so check further
      // create new array for the current values
      for(var i=0;i<data.length;i++) {
        queueIDs.push(+data[i]['queue_id']);
      };

      // sort them for faster comparison
      queueIDs.sort( function(a,b) {
        return a-b;
      });

      // check one by one and exit to run doSomething
      // as soon as the first difference found
      for(var i=0; i<queueIDs.length; i++) {
        if(queueIDs[i] != previousQueueIDs[i]) {
          previousQueueIDs = queueIDs;
          return doSOmething();
        }
      }
      // no difference this time, just set timer for the next run
      setTimeout(check_getqueue, 4000);
    }
  });
}
var-previousQueueIDs=[];
函数doSomething(){
//做点什么
// ...
//为下一次运行设置计时器
设置超时(检查\u getqueue,4000);
}
函数检查\u getqueue(临床ID、用户ID){
$.ajax({
url:siteurl+“sec_myclinic/checkingUpdates/”+clinicID+“/”+userID,
类型:“POST”,
数据类型:“JSON”,
成功:功能(数据){
var queueIDs=[];
if(previousQueueIDs.length!=data.length){
previousQueueIDs=队列ID;
返回doSomething();
}
//长度没有改变,所以请进一步检查
//为当前值创建新数组

对于(var i=0;像
data
这样的ILook已经是一个数组了…使用
x=data
将其放入另一个变量中(在本例中为x)如果您必须…@JaromandaX感谢您的评论,先生,我如何将数据响应存储到数组中,并将其值从以前的值比较到新的值,因为我使此函数每4秒运行一次ewhere(分隔符分隔的字符串格式)每次ajax代码都会将隐藏字段值与数据库值进行比较,最后用数据库中的最新值更新隐藏字段值。@ShrikantMavlankar我不想为这种情况添加另一个表,先生,因为我只想存储所有队列id,如果它给我类似的值:1,2,3,4,5,那么下一个查询将是1,2,3,4,然后我将刷新div,如果它给我1,2,4,5,我将在每次数据库中队列id中出现更改值时再次刷新div。谢谢您的回答,先生,您能用这些添加它吗?请:我如何将数据响应存储到数组中,并将其值从以前的值比较到新的值,因为我我让这个函数每4秒运行一次json url是什么?你能发布吗?你说的json url是什么意思先生。它已经在那里了。siteurl+…等等。我想得到json对象,给你写函数检查值。它给我这些SIR的结果:[{“queue\u id”:“1”},{“queue\u id”:“3”}]不需要对它进行排序,因为在我的查询中,我已经按升序对它进行了排序