使用外部提取的数据刷新同一页面上的div

时间:2013-08-06 13:55:56

标签: php javascript html

我再遇到问题,让我向你解释一下。

在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

3 个答案:

答案 0 :(得分:0)

$(function() {
    setInterval(function(){
        $('#data').load('site.php');
    }, 5000);
});

答案 1 :(得分:0)

绝对是AJAX的工作......

既然你说你已经在使用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    
      });        
    }