我怎样才能不断更新div

时间:2009-11-10 12:04:05

标签: asp.net jquery ajax

我有asp.net应用程序,我有一个div显示其他网站的价值。 该网站的价值不断变化。

我希望我的div会在某个间隔时间内自动更新。

我该怎么办?

4 个答案:

答案 0 :(得分:5)

$(document).ready(function() {
        var refreshId = setInterval(function()
        {
             $('#main').fadeOut("slow").load('Default.aspx').fadeIn("slow");
        }, 50000);
        });

答案 1 :(得分:4)

抱歉这个错误。使用 setTimeout 而不是 setInterval 来容纳AJAX请求中可能出现的任何延迟。

var to;
$(function() {
    // initialize timer to update div every 5 seconds
    to = setTimeout(updateDivContent, 5000);
});

function updateDivContent() {
    // make your AJAX/LOAD request for the data here to populate div
    $('#mydivcontainer').empty().load('myAspFileToGrabExternalData.aspx', null, function() {
        // reset the timer to grab the content in another 5 seconds
        to = setTimeout(updateDivContent, 5000);
    });
}

您可以阅读jQuery的加载方法here

答案 2 :(得分:1)

您可以使用jquery / javascript的setinterval函数。 有关一些信息,您可以查看本教程: http://docs.jquery.com/Tutorials:Scroll_Up_Headline_Reader 或者在jquery文档站点中搜索其他引用。

答案 3 :(得分:1)

您需要使用主动轮询(反复检查其他网站),这可能会让您对该网站产生一些仇恨(并且可能会产生法律后果),除非您是拥有它的人。您可能不想使用setInterval()来轮询其他站点,因为如果站点需要一些响应(例如,如果您每5秒轮询一次,并且站点需要6秒钟响应一次,那么这可能会引入竞争条件,那么1秒钟回复后续回复,这两个都会在同一时间点击你的页面。

借用cballou的帖子:

var to;
$(function() {
    // initialize timer to update div every 5 seconds
    to = setTimeout(updateDivContent, 5000);
});

function updateDivContent() {
    // make your AJAX/LOAD request for the data here to populate div
    $('#mydivcontainer').load('myAspFileToGrabExternalData.aspx', null, function() {
        // reset the timer to grab the content in another 5 seconds
        to = setTimeout(updateDivContent, 5000);
    });
}

此外,cballou的帖子有一个错误,每次运行时它都会排队一个新的间隔(这样,经过3次迭代,你每5秒钟取一次页面,经过10次迭代,你就得到了它两次,等等。)