【发布时间】:2011-06-12 22:54:32
【问题描述】:
我有一个 rails 3.1rc4 应用程序,我想每 10 秒更新一次 index.html.erb 文件中的 div。我不知道这是否可以通过 jquery 完成?曾经有一种更新方法,但如果它仅用于原型,我不知道。任何样品都会很棒
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby-on-rails-3
我有一个 rails 3.1rc4 应用程序,我想每 10 秒更新一次 index.html.erb 文件中的 div。我不知道这是否可以通过 jquery 完成?曾经有一种更新方法,但如果它仅用于原型,我不知道。任何样品都会很棒
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby-on-rails-3
将您的问题分解为子任务,这是您必须处理的:
对于1,查看jquery的.get
Description: Load data from the server using a HTTP GET request.
对于 2,查看 jquery 的.html
Get the HTML contents ... or set the HTML contents of every matched element.
对于 3,请查看setInterval
Summary
Calls a function or executes a code snippet repeatedly, with a fixed time
delay between each call to that function. Returns an intervalID.
最终解决方案,
HTML 代码:
<div id="divToChange"></div>
Javascript 代码
function update()
{
$.get('/', function(data)
{
$('#divToChange').html(data);
});
}
$(document).ready(function($){
window.setInterval('update()', 10*1000);
});
【讨论】:
request.xhr?,或者检查格式,并使用正确的响应器(js 或 html)。
我假设您熟悉 javascript,可能还熟悉 AJAX(如果您需要的话)。
这段javascript使用了原生的setInterval函数,每隔10秒调用一次updateDiv函数。
var timer = setInterval(updateDiv, 10000);
function updateDiv() {
// do update
}
编辑:没有 jQuery 的完整示例;
<html>
<head>
<script type="text/javascript">
var index = 1;
function updateDiv() {
document.getElementById("updateMe").innerHTML = index++ + " " + new Date();
}
var timer = setInterval(updateDiv, 10000);
</script>
</head>
<body>
<div id="updateMe" />
</body>
</html>
【讨论】: