0

我又被一个问题困住了,让我给你解释一下。

在 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

4

3 回答 3

0
$(function() {
    setInterval(function(){
        $('#data').load('site.php');
    }, 5000);
});
于 2013-08-06T14:38:15.990 回答
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
    );
});
于 2013-08-06T14:40:29.703 回答
0

您可以使用简单的长轮询技术每 5 秒刷新一次 div ,而不是使用setInterval每 5 秒调用一次函数。问题在于,如果请求未在指定时间(此处为 5 秒)内完成,则会出现 ajax 请求链。setIntervalajax

   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    
      });        
    }
于 2013-08-06T17:47:34.960 回答