【问题标题】:console.log() only if AJAX data changed仅当 AJAX 数据更改时 console.log()
【发布时间】:2017-10-18 14:02:38
【问题描述】:

我做了这个:

<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>

还是不行

【问题讨论】:

  • 尝试将if($('.storage').html() !== data){更改为if($('.storage').text() !== data){
  • $('.storage').html() 的值是多少? data 的值是多少? 他们曾经一样吗?请注意,您的代码似乎从未修改 $('.storage').html() 的值。
  • 500 不是 5 秒,而是半秒。最后加一个0。
  • @klenium 是的,我知道,我没有更改评论。如果新数据改变 storage 比 data 和 storage 是相同的字符串。
  • 为什么要添加另一个元素?为什么不使用变量或使用.result 元素?

标签: javascript php jquery html ajax


【解决方案1】:

因为您在比较之前先放置空白。从第一行删除这一行,

 $('.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>

【讨论】:

  • 还是同样的问题:(
  • 共享两个字符串,或者尝试将一个像if (storage === 'mytext')这样的静态字符串运行,如果它运行意味着您需要使用修剪功能或数据不正确
  • @AppleWeb:你试过这个解决方案了吗?
【解决方案2】:

在你的代码中

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

此行使存储空白将其删除或放置在函数之后

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2012-01-22
    • 2018-09-23
    • 1970-01-01
    • 2011-07-23
    • 2018-10-02
    相关资源
    最近更新 更多