使用jquery自动刷新div

时间:2009-02-02 22:51:25

标签: jquery xmlhttprequest refresh

当尝试使用此处提供的代码link text时,我遇到了一些问题,建议为此问题打开一个新问题。我在这里使用该代码link text试图为会议创建一个反向通道(它使用twitter搜索API来显示数据,所以请尝试使用一些哈希键来获取数据)。 问题是,当内容获得它时,它会立即消失,就像div被隐藏一样。在查看源代码时,我可以看到div的内容,但它没有显示。除非发生超时并且显示超时的错误消息,否则下面div的内容将保留。 为了完整起见,我将把这里使用的代码放在:

                <script type="text/javascript">
    function update() {

    $("#notice_div").html('<img src="img/ajax-loading.gif" border="0"/>');
    $.ajax({
        type: 'GET',
    url: 'inc/backchannel.php',
        timeout: 2000,
    success: function(data) {
        $("#backchannelContent").html(data);
        $("#notice_div").html(''); 
        window.setTimeout(update, 2000);
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        $("#notice_div").html('Timeout contacting server..');
        window.setTimeout(update, 60000);
    }
    })}$(document).ready(update);
    </script>

在此先感谢您的帮助,我不是那么多javascript编码器,所以感觉就像在这里走砖墙一样: - (

2 个答案:

答案 0 :(得分:2)

您遇到问题,因为div的内容是在隐藏动画完成之前加载的。您可以使用另一个回调来解决它,如下所示:
(这与Mark写的很相似,但是使用匿名函数)

$(document).ready(function(){
  setInterval(function(){
    $("#random:not(:animated)").hide("slow", function(){
        $("#random").load("inc/backchannel.php").show("slow");
    });//show callback
  } ,10000);//set interval
});//doc.ready

答案 1 :(得分:1)

尝试这样的事情

function getRandom() {
    $("#random").hide("slow");
    $("#random").load("http://www.google.co.uk", '', callback);
}

function callback() {
    $("#random").show("slow");
    setTimeout("getRandom();", 10000);
}

$(document).ready(getRandom);