在rails 3.1中每10秒重新加载一页

时间:2011-06-12 22:54:33

标签: javascript jquery ruby-on-rails ruby-on-rails-3

我有一个rails 3.1rc4应用程序,我想在每10秒后更新我的index.html.erb文件中的div。如果可以通过jquery完成,我不会这样做吗?有一个更新方法,但我不,如果它只是原型。任何样本都会很棒

2 个答案:

答案 0 :(得分:1)

我假设你熟悉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>

答案 1 :(得分:1)

将您的问题分解为子任务,这是您必须处理的问题:

  1. 检索(HTTP GET)html
  2. 使用检索到的html更新div
  3. 每10秒重复步骤1和2
  4. 对于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);
    });