将localstorage与ajax合并

时间:2014-07-14 22:06:50

标签: php ajax

我如何合并这两位代码,并且有人可以解释密钥和值的含义。 我正在建立一个通知系统,我想要存储最后一个新的notification_id,但是如果它是相同的那么一遍又一遍地插入div,那么ajax会在我的服务器中搜索其他任何可能是新的。

的Ajax

<script type="text/javascript">
    function loadIt() {
      var notification_id="<?php echo $notification_id['notification_id'] ;?>"
    $.ajax({
    type: "GET",
    url: "viewajax.php?notification_id="+notification_id,   
    dataType:"json",
    cache: false,
    success: function(dataHandler){
    }
    });
    }
    setInterval(loadIt, 10000);
    </script>

Localstrorage

window.localStorage.setItem('key', 'value');
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 + '');
    }
};

1 个答案:

答案 0 :(得分:1)

你用jQuery手工混淆了oldschool Ajax。 jQuery中success函数的参数不是函数名或处理函数。它是一个变量名,它将包含来自服务器的响应。成功函数本身等同于您以旧方式创建的处理函数。

所以不是:

 success: function(dataHandler){ }
 ...
 ...
 var dataHandler = function (response){

而是:

 success: function(response) { doCallsToSaveToLocalStorage(response); }