update.あらすじ簡易チャットアプリを作成中。特定のページにsetIntervalとAjaxを用いたメッセージの自動更新を実装しようとしたところ、アプリの全ページにsetIntervalが作動してしまい、特定ページ以外で無限のエラーメッセージが生じ悩まされることに...。一度読み込まれたJavaScriptのプロセスが、他のページでも生き続けてしまうことが原因でした。とあるページでsetIntervalするとどのページに行っても止まらない、POSTしたりして止まっても今度は再開すべきページで再開しない、という事故が簡単に起きます。これはPOSTやPUTをしてjsの再読み込みが行われるまでページ遷移してもjsのプロセスがずっと生き続ける為です。(引用:「Turbolinksさんと上手く付き合う10の方法」)問題解決には、Turbolinksさんをどうにかする必要があるみたいです、Turbokinksとはざっくりいうと、ウェブアプリ上でページを移動する際、新規ページ全体をリロードするのではなく、必要部分のみajaxを使って書き換えてくれるもの。これによってページ移動を高速化している。現在のRailsにデフォルトでついている機能みたいですね。詳細な解説は、以下の記事・サイトがわかりやすくオススメです。→図がわかりやすく、ajaxでの書き換えのイメージが掴めます。→解説が丁寧でわかりやすいです。→Turbolinksでの基本的な注意点がまとまっています。→上記記事の筆者seri_kさんのブログ。Turbolinks以外の記事も非常に参考になります。TurbolinksをOFFにし、特定のページに個別でJSを当てるベストかどうかはわかりませんが、これが一番手っ取り早いです。TurbolinksをOFFにし、その上で特定のページのみに適用させたいJSを個別に当てます。installをお忘れなく。'application'ちなみにhamlで記述しています。ここまで、1~3の手順で、TurbolinksをOFFにすることができました。.」によって、application.js以下のディレクトリに存在するjsファイルが全て読み込まれる。特定のページのみに適用させたいjsファイルはstubを用いて除外する。JSを適用させたいviewファイルにjavascript_include_tagを記述する。JSを適用させたいviewファイルにjavascript_include_tagを記述する。#追記するこれで、特定のページ(messages/index)のみに、特定のJS(reload.js)が当たるようになりました。setIntarvalをセットする条件。試行錯誤して見たものの、うまくいかず。Setintervalがどこのページでも作動してしまいました。clearIntervalの挙動やJSにおけるグローバル変数など勉強する必要がありそうです。以下は試行錯誤の上、試して見たコードです(うまく働かない。chatクラスが存在する場合、以下を行う。chatクラスが存在しない場合、以下を行う。