0

我有一个 Rails 应用程序,我希望每五秒钟只刷新一个视图。我将以下内容放入 assets/javascripts/application.js

function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",timeoutPeriod);
}

$(document).ready(function(){
  timedRefresh(5000);
});

但是,这将导致每个视图每五秒刷新一次。我怎样才能让这个 JavaScript 只适用于一个视图?

(使用 Rails 3.2.5)

4

2 回答 2

1

如果您想将 JS 保留在 application.js 中,您可以简单地检查特定元素的存在并采取相应措施。例如:

some_vew.html.erb

<div id = "refreshable">
    <!-- So on and so forth... -->
</div>

应用程序.js

$(function() {

    // function timeRefresh()...

    if ($('#refreshable').length) {
        timedRefresh(5000);
    }
});
于 2012-06-12T20:00:08.983 回答
0

您可以使用视图底部的标签。

some_view.html.erb

...
contents
...
<script type="text/javascript">
  Put javascript code here...
</script>

这将使该脚本仅可用于 someview.html.erb。application.js 使脚本全局化。

于 2012-06-12T19:54:54.210 回答