Rails 3.1 では、「ページ固有」の JavaScript コードをどこに配置しますか?
質問:
Rails 3.1 では、次の理由によりすべての JavaScript が 1 つのファイルにマージされます。 //= require_tree .、すべてのページで実行せずに、ページ固有の JavaScript コードを組み込むにはどうすればよいでしょうか?コードの衝突を防ぎ、手動スクリプト タグの使用を避けることは可能ですか?
回答:
コントローラー固有の JavaScript:
Rails は、コントローラー固有のアセット ファイルを通じてこれに対するソリューションを提供します。たとえば、ProjectsController には、
<%= javascript_include_tag params[:controller] %> <%= stylesheet_link_tag params[:controller] %>
Div での機能のラップ:
別のアプローチは、一意の ID またはクラスを持つ div タグで機能をラップすることです。 。 JavaScript コードは、これらの要素の存在を確認し、それに応じて実行することができ、意図したページでのみ実行されるようにします。これにより、ページのコンテンツに基づいて選択的に組み込むことができるモジュール式 JavaScript コードが可能になります。コードの衝突の回避:
名前空間のプレフィックスまたはモジュール パターンを使用すると、コードの衝突が発生する可能性があります。避けられること。たとえば、特定のページのコードは次のようにラップできます。(function() { var PageSpecificCode = {}; // ... })();
手動スクリプト タグの排除:
上記のアプローチにより、手動スクリプト タグは必要なくなります。個別のページでは削除されます。 JavaScript コードは、application.js マニフェスト ファイルとコントローラー固有のアセット ファイルを通じて一元管理および管理できるため、よりクリーンで効率的なコード構成が実現します。以上が手動スクリプトタグを使用せずにページ固有の JavaScript を Rails 3.1 に含める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。