0

5 秒ごとに 1 つのビューだけを更新する Rails アプリがあります。assets/javascripts/application.js に以下を入れました

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

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

ただし、これにより、すべてのビューが 5 秒ごとに更新されます。この JavaScript を 1 つのビューだけに適用するにはどうすればよいですか?

(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 に答える