如何刷新<div> </div>

时间:2009-06-13 00:39:50

标签: javascript jquery html

如何刷新div里面的自动刷新div,这是php

以下代码不起作用?

var refresh = setInterval(function() {  $("#recent_activity").html(); }, 1);

4 个答案:

答案 0 :(得分:14)

基于x0n的评论,我认为这是一个公平的猜测,我猜你想要每隔X秒从服务器自动刷新一个<div>。在你的例子中,setInterval函数的第二个参数是1.这是一个非常糟糕的主意,因为延迟是以毫秒为单位,所以你每秒会触发1000个请求(不是浏览器会让你,但仍然)。

无论如何,如果这就是你想要的,你需要这样做:

var timer;
var seconds = 30; // how often should we refresh the DIV?

function startActivityRefresh() {
    timer = setInterval(function() {
        $('#recent_activity').load('recent_activity_ajax.php');
    }, seconds*1000)
}

function cancelActivityRefresh() {
    clearInterval(timer);
}

您的服务器端脚本(示例中为recent_activity_ajax.php)将需要返回您想要填充<div>的任何内容 - 只是那个,而不是页眉或页脚或其他任何内容。如果您希望在页面加载时启动此功能,则只需拨打startActivityRefresh

即可
$(function() {
    startActivityRefresh();
});

如果这完全不是您刷新<div>的意思,那么您需要澄清一下。 :)

修改

回应您的评论:您无法使Javascript“刷新”动态PHP代码的内容。这是不可能的,因为浏览器无法真正执行像PHP这样的服务器端语言。你必须再次呼叫服务器。为了使这个最干净,您应该将填充#recent_activity内容的代码移动到一个函数,在页面加载时调用一次,并使用一个不同的文件来简单地输出该代码以便能够动态刷新它。你应该从这里看看MVC模式,但我不确定你是否已经做好了准备......

答案 1 :(得分:1)

您可以编写类似这样的函数并在'document.ready'

上调用它
function refreshMyDiv()
{
   $("myDiv").fadeOut("slow");
   //Code to refresh the content goes here
   //could be a AJAX call
   $("myDiv").fadeIn("slow");
   setTimeout("refreshMyDiv();", 60000);

} 

答案 2 :(得分:1)

http://www.ajtrichards.co.uk/heartbeat/

$(document).ready(function(){
$.jheartbeat.set({
   url: "data.php", // The URL that jHeartbeat will retrieve
   delay: 1500, // How often jHeartbeat should retrieve the URL
   div_id: "test_div" // Where the data will be appended.
}); });

答案 3 :(得分:0)

div'recent_activity'没有任何关于永久与您的服务器同步的信息。但是,假设您有一些动态网页recent_activity.php从最近活动数据库返回当前数据,您可以偶尔将其加载到div中

var refresh = setInterval(function() { 
    $('#recent_activity').load('recent_activity.php');
}, 1);

P.S。 1毫秒的垃圾邮件通常是一个坏主意。如果您想要对活动进行亚秒响应,请查看彗星模式。