我有asp.net应用程序,我有一个div显示其他网站的价值。 该网站的价值不断变化。
我希望我的div会在某个间隔时间内自动更新。
我该怎么办?
答案 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次迭代,你就得到了它两次,等等。)