1

RailsアプリケーションでJammitを採用しようとしています。

ドキュメントで提供されているデフォルトの設定は、ビュー固有の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!");
}

どうすればそのような影響を回避できますか?

よろしく、アレクセイ・ザハロフ

4

2 に答える 2

3

私の好みは、その「view-specific-javascript」を関数にまとめることです。そして、実際にロードするページに応じてその関数を呼び出します。このようにして、すべての JavaScript をブラウザーで 1 つのファイルとしてキャッシュすることができ、JS の必要な部分を実行できます。

したがって、ページの読み込み時にビュー固有の関数を呼び出す<script>特定のテンプレートにタグを追加します。html.erb

それが役立つことを願っています...

于 2010-08-19T15:53:41.623 に答える
0

私はこれを掘り下げて、特定のタグだけに動作をリンクするという jashkenas アプローチの代替案を指摘しています。

$(function() {
  $('#my-view-object').someBehaviour();
}

それで、キャッチは何ですか?主な違いは、JS コードはページではなく特定のオブジェクトにリンクされる傾向があることです。ビューを再編成する場合は、JS も変更する必要があります。もう 1 つの問題は、ブラウザーを最大限に活用するために JS をページの下部に配置する必要があることです。ビューにスクリプト エントリを配置すると、ページの html マークアップ全体にスクリプト エントリが配置され、レンダリングが遅くなる可能性が高くなります。

BR, -- ホセ

于 2012-04-22T14:00:47.140 に答える