我再遇到问题,让我向你解释一下。
在div中,我从其他站点获取了HTML SIMPLE DOM的数据。像
<div id="data">.....</div>
每次用户刷新页面时都会刷新。但我想要一些额外的东西。我想做的是,在5秒后定期刷新div(在其中提取和添加外部数据)。
PHP SIMPLE HTML DOM脚本和此div都在同一页面上。
现在我只需要任何jquery或javascript代码,每隔5秒刷新一次带有数据id的div,其他站点都有新数据,所有这些都没有刷新整个页面。
更新
我已使用此代码
$(document).ready( function() {
function getTheTime(){
$.get('http://your-domain/file.php',function(data,status){
$('#data').html(data);
});
}
var refresh = setInterval(
"getTheTime()",
5000
);
});
但问题非常奇怪,为什么不刷新div?事实上,我已经为间隔设置了警报,但它也没有奏效。真正的问题是什么?为什么它没有从file.php获取数据,为什么它实际上没有刷新div ??
我正在使用最新的jquery CDN。 http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js
答案 0 :(得分:0)
$(function() {
setInterval(function(){
$('#data').load('site.php');
}, 5000);
});
答案 1 :(得分:0)
既然你说你已经在使用jQuery了,我会快速指导你完成这些步骤,以便设置一个AJAX函数并在一段时间内运行它。
第1步:创建一个PHP文件,获取您想要放入DIV的数据......
只需创建一个PHP文件并将代码放入以获取数据:
<?php echo "The time is " . date('Y-m-d H:i:s');
第2步:设置AJAX函数以从该文件中获取数据......
function getTheTime(){
$.get('http://yourdomain.com/ajax/getthetime.php',function(data,status){
$('#data').text(data);
});
}
(可以使用.load
函数,但如果你想在将数据放入DIV之前对数据做任何事情,那么灵活性就会低得多。
第3步:按间隔调用该功能......
接下来,我们需要设置一个间隔来每隔5秒调用一次新函数。
$(function(){
var refresh = setInterval(
getTheTime(),
5000
);
});
答案 2 :(得分:0)
您可以使用简单的long polling技术每隔5秒刷新一次div,而不是使用setInterval
每5秒调用一次该函数。 setInterval
的问题在于,如果ajax
请求未在指定时间内完成(此处为5秒),则会出现ajax请求链。
function getTheTime(){
$.ajax({
type: "POST",
url: "http://your-domain/file.php",
success: function(response) {
$('#data').html(response); //update your div
},
complete: function(){
setTimeout(
getTheTime, /* Refresh time */
5000 /* ..after 5 seconds */
);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
//display you error message
},
timeout: 5000 //Timeout is necessary to prevent chaining of unsuccessful ajax request
});
}