如何使用AJAX自动刷新一个div或网页

9

我很久以来一直在尝试做这件事,但是我做不到。这是我的问题: 我有一个网页,就像这样:

<html>
<body>
<div id="my_div">
<span id="txt">HELLO WORLD</span>
</div>
</body>
</html>

现在我想让"my_div" div每隔X秒刷新一次,同时刷新其内容。如何使用AJAX或JQUERY或JAVASCRIPT实现此功能?

注意:我不需要刷新整个页面的脚本。 注意(2):我已经尝试通过Google查找相关资料,但是没有找到。

请帮帮我。我已经遇到这个问题很长时间了。

提前感谢您的帮助!


@charlietfl 是什么意思?我需要一个 AJAX 代码,每 X 秒刷新一次 div。 - gedamial
3个回答

18

使用jQuery的load()和一个间隔计时器是最简单的方法。

setInterval(function(){
   $('#my_div').load('/path/to/server/source');
}, 2000) /* time in milliseconds (ie 2 seconds)*/

load()$.ajax 的缩写方法。

这意味着您需要设置一个服务器端脚本,该脚本仅输出该元素的内容。您也可以在 load 的 URL 中使用选择器片段来解析特定内容的完整页面。

请参阅 load() API 文档


耶!这就是我一直在寻找的东西!谢谢!还有一个问题:如果我想刷新整个页面怎么办? - gedamial
如果您想在定时器上重新加载整个页面,可以使用<META HTTP-EQUIV="refresh" CONTENT="15">。 - IanB
@IanB,这不是用ajax在页面内刷新内容的方法。 - charlietfl
@charlietfl - 它是在回复Michele的评论,关于如何刷新整个页面 - 但是必须承认它没有使用Ajax。 - IanB

3

您可以编写一些类似于下面的内容:

var doSth = function () {

  var $md = $("#my_div");
  // Do something here
};
setInterval(doSth, 1000);//1000 is miliseconds

1
使用jQuery,您可以使用以下方式动态更新元素的内容:
$("#my_div").html("... new content ...");

新内容替换原始内容。
使用setInterval()方法,您可以每隔一段时间执行JavaScript代码:
例如:
window.setInterval(function() {
   $("#my_div").html("... new content ...");
}, 1000);

每秒钟替换内容。

你编写的函数是:function($("#my_div").html("Hello")) {},而不是正确的:function() {$("#my_div").html("Hello")}。 - Kolban

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接