Jammitが特定のJavaScriptを表示する方法
-
29-09-2019 - |
質問
私は採用しようとしています ジャムミット 私のRailsアプリケーションで。
ドキュメントで提供されるデフォルトの構成は、表示固有のjavascriptを含むすべてのJSファイルをつかみます。
embed_assets: on
javascripts:
workspace:
- public/javascripts/vendor/jquery.js
- public/javascripts/lib/*.js
- public/javascripts/views/**/*.js
- app/views/workspace/*.jst
stylesheets:
common:
- public/stylesheets/reset.css
- public/stylesheets/widgets/*.css
workspace:
- public/stylesheets/pages/workspace.css
empty:
- public/stylesheets/pages/empty.css
特定のjavaScriptを表示する場合は、特定のビューでのみ実行する必要がある場合を考えてみましょう。
$(function(){
alert("View specific message here!");
}
どうすればそのような効果を回避できますか?
よろしく、アレクセイ・ザハロフ
解決
私の好みは、関数にその「ビュー特異的ジャバスリック」をまとめることです。そして、実際にロードするページに応じて、その関数を呼び出します。このようにして、すべてのJavaScriptを単一のファイルとしてブラウザによってキャッシュでき、必要なJSの部分を実行できます。
だから私は追加します <script>
特定のタグ html.erb
ページロードでビュー固有の関数を呼び出すテンプレート。
それが役立つことを願っています...
他のヒント
これを掘り下げて、Jashkenasアプローチに代わるものを指摘します。これは、特定のタグだけに動作をリンクすることです。
$(function() {
$('#my-view-object').someBehaviour();
}
それで、キャッチは何ですか?主な違いは、JSコードがページではなく特定のオブジェクトにリンクされる傾向があることです。意見を再編成する場合は、JSも変更する必要があります。もう1つの問題は、JSがブラウザを最大限に絞るためにページの下部にいる必要があることです。ビューにスクリプトエントリを入れている場合、おそらくページのHTMLマークアップ全体になり、レンダリングを遅くすることになります。
BR、 - ホセ
所属していません StackOverflow