我有动态刷新div的网站。
来源:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script>
var auto_refresh = setInterval(
function()
{
$('#loaddiv').fadeOut('slow').load('boo.php').fadeIn("slow");
$('#loaddiv2').fadeOut('slow').load('boo2.php').fadeIn("slow");
}, 1000);
</script>
但是,只有当boo.php返回不同于(更新)的值而不是实际div时,我才想要fadeout和fadein。
如何比较新值和实际值并执行此操作?
P.抱歉英语不好但我是波兰语
答案 0 :(得分:1)
您需要编写一个回调函数来检查返回的数据,并将其与已存储在div中的数据进行比较。此外,显示/显示div的函数可能也需要移动到回调函数。
文档可用here.
答案 1 :(得分:0)
您需要检查从ajax调用中获得的结果,并将其与当前内容进行比较。假设您的Ajax响应和当前Div标记中有一个ID为MsgCount
的元素,并且您使用的值进行比较,则以下代码将起作用
$(function() {
var auto_refresh = setInterval(function(){
var currentMsgCount= $('#MsgCount').text();
$.get("boo.php",function(data){
var resultData=$(data);
var newMsgCount= resultData.filter('#MsgCount').text();
if(newMsgCount!=currentMsgCount)
{
//content is different. Let's show it
$('#loaddiv').fadeOut('slow',function(){
$('#loaddiv').html(data).fadeIn("slow");
});
}
});
}, 1000);
});
答案 2 :(得分:0)
你必须给boo.php写一个Ajax函数,并将结果与div的值进行比较
$.ajax(
{
url: "boo.php",
success: function(result)
{
if($("#loaddiv").html() != result)
{
$("#loaddiv").fadeOut("slow")
$("#loaddiv").html(result);
$("#loaddiv").fadeIn("slow");
}
}
});