仅当AJAX数据发生更改时,console.log()

时间:2017-10-18 14:02:38

标签: javascript php jquery html ajax

我这样做了:

<script type="text/javascript">
    $('.storage').html("");
    setInterval(function(){
        $.get('./playcommand.php', function(data) {
            if($('.storage').html() !==  data){
              $('.result').html(data);
              console.log("neu");
            }
        });
    }, 500); // 5 seconds
</script>

我的意图是console.log("neu");只有来自AJAX的数据与之前的数据不同,这就是为什么我创建了一个div“存储”,其中我保存了不等于之前数据的最新数据。

但它不起作用,它总是记录“neu”,即使数据不同。

更新:

我的新代码:

 <script type="text/javascript">
    var storage = $('.storage').text();
    setInterval(function(){
        $.get('./playcommand.php', function(data) {
            if($('.storage').text != data){
              $('.result').html(data);
              console.log("neu");
            }
        });
    }, 500); // 5 seconds
</script>

仍然无法正常工作

2 个答案:

答案 0 :(得分:2)

因为在比较之前你是空白的。从第一行删除此行

 $('.storage').html("");

或者将字符串保存在一个变量中进行比较

 var storage = $('.storage').text();
 $('.storage').html("");

然后将datastorage

进行比较
<script type="text/javascript">
     var storage = $('.storage').text().trim();;
     $('.storage').html("");
     setInterval(function(){
        $.get('./playcommand.php', function(data) {
            if(storage != data.trim()){
              $('.result').html(data);
                console.log("neu");
            }
        });
    }, 500);
</script>

答案 1 :(得分:1)

在您的代码中

 $('.storage').html("");

此行使存储空白将其删除或将其放在功能

之后