如果新数据反复停止插入

时间:2014-07-14 19:34:42

标签: javascript ajax

为了简单起见,我只是想知道我是怎么做的,如果发现新的数据,如果它找到它并且不是一遍又一遍的相同数据,那么我是否会对我的ajax声明再次。我怎么可能将最后一个id存储为变量,以便在搜索更多新记录时重复使用它?

有人向我提到我也可以将新的通知想法保存为返回,所以当ajax重新启动时,它会使用它来查找下一组新的结果。

有没有人有任何想法如何实现这些?

<script type="text/javascript">
setInterval(function(){

var time = new Date().getTime();
  var notification_id="<?php echo $notification_id['notification_id'] ;?>"

$.ajax({
type: "GET",
url: "viewajax.php?notification_id="+notification_id+"&time="+time ,   
dataType:"json",
cache: false,
success: function(response){
if(response.num){
$("#notif_actual_text-"+notification_id).prepend('<div  id="notif_actual_text-'+response['notification_id']+'" class="notif_actual_text"><a href="'+response['notification_id']+'">'+response['notification_content']+' </a><br />'+response['notification_time']+'</div></nr>');

 $("#mes").html(''+ response.num + '');
}
}
});
},20000);

</script>

1 个答案:

答案 0 :(得分:1)

关于存储最后一个ID,您可以使用:

window.localStorage.setItem('key', 'value');

然后当你想再次获得它时,你应该使用:

var lastId = window.localStorage.getItem ('key'); 

关于重复问题,您应该有一个内部存储空间来处理收到的数据。可能是一个阵列可以作为存储帮助,也可以将此阵列存储在本地存储中。

处理完此数据存储后,您可以应用以下内容来验证您的数据没有重复数据:

var dataHandler = function (response){
   var isDuplicate = false, storedData = window.localStorage.getItem ('key');

   for (var i = 0; i < storedData.length; i++) {
     if(storedData[i].indexOf(response) > -1){
        isDuplicate = true;
     }
   }
   if(!isDuplicate){
     storedData.push(response);
   }
}; 

var printer = function(response){
   if(response.num){
      $("#notif_actual_text-"+notification_id).prepend('<div  id="notif_actual_text-'+response['notification_id']+'" class="notif_actual_text"><a href="'+response['notification_id']+'">'+response['notification_content']+' </a><br />'+response['notification_time']+'</div></nr>');

      $("#mes").html(''+ response.num + '');
    }
};

更新

var notification_id = window.localStorage.getItem ('lastId'); 
    $.ajax({
    type: "GET",
    url: "viewajax.php?notification_id="+notification_id+"&time="+time ,   
    dataType:"json",
    cache: false,
    success: function(response){
    if(response){
    dataHandler(response);
    if(response.num){
       window.localStorage.setItem('lastId', response.num);
    }
    });
    },20000);