如何刷新div里面的自动刷新div,这是php
以下代码不起作用?
var refresh = setInterval(function() { $("#recent_activity").html(); }, 1);
答案 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毫秒的垃圾邮件通常是一个坏主意。如果您想要对活动进行亚秒响应,请查看彗星模式。