我做了这个:
<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>
还是不行
最佳答案
因为你在比较之前放了空白。从第一行删除这一行,
$('.storage').html("");
或者将字符串保存在一个变量中进行比较
var storage = $('.storage').text();
$('.storage').html("");
然后比较data
和storage
<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>
关于javascript - console.log() 仅当 AJAX 数据改变时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46812040/