2011-07-21 7 views
0

私はWebアプリケーションでクライアント側の開発者として働いていて、自分自身がそれぞれ異なるページ用にたくさんのモジュールを持っていることがわかりました。私は自分自身でルートに応じて(JavaScriptで)インクルードするか、この責任をバックエンド(ルビー・オン・レール)に渡すことをお勧めします。Javascriptはページに応じたコントロールを含んでいます

私はいくつかのapplication.jsは、各ページに含まれる必要があり、それにはこのような何かとします

if (window.location.href == '.../somePage') { 
    loadScript('somePageControls.js') 
} 

if (window.location.href == '.../anotherPage') { 
    ... 
} 

任意の考えを?

+2

このサーバー側を作る、ルビーを使用すると、同じページに後で使用するためのコントロールを必要としない限り、私はすべてのクライアント側を含むの任意のポイントが表示されていない –

+0

ちょうど良い仕事を行います。それをサーバー側の人に送り返してください。 – mrtsherman

答えて

1

大丈夫、これはまったく簡単な答えではありません。あなたとそこにルビー男がいるので、すべてが大丈夫です。 ;)

あなたがあまりにも多くの人を気にしたくない場合(私はそれがチームで働くのが簡単ではないことを知っています)、作業フォルダから1つのルビファイルを含めるように頼むことができます。

/web-app/ruby-guys/you/ruby-js.rb 

このユニークなファイルを使用して、ここから必要なすべてのjsファイルを読み込むことができます。私から

case url-query 
    when x 
    # print out drag-drop.js 
    when y, z 
    # print out mouse-move.js 
+0

ありがとう、私は明日ルビーと話すでしょう。ところで、彼らは素晴らしいですし、私たちのチームは素晴らしいですが、私は自分のコードを完全に制御することが良いと思った:-) – spacevillain

1

あなたはサーバー側の人にそれを渡す必要があります。ソートスクリプトのインクルードサーバー側を出力する方がはるかにクリーンです。大規模なif-elseを使用するよりも、必要なページに追加するだけです。

+0

しかし、私は自分のコードのどこに行かなければならないのか分かっていませんか?とにかく、お返事ありがとうございます、私は私のチームとこのことについて話します:-) – spacevillain

0

eaxmpleスイッチケースのための$ 0.02使用して... あなたは(Railsの)サーバーへのラウンドトリップを最小限にしたい場合は、単にあなたの最後にハッシュタグを使用することができますurlsを作成し、ハッシュタグを解析して、必要なモジュールを特定します。これにより、必要に応じてページをCDNに置くことができ、異なるハッシュタグを持つ同じページにサーバーをリダイレクトするだけで、ページにロードされたモジュールを動的に変更できるようになります。

など。

// Example URL: http://example.com/index.html#mod1,mod2,mod3,mod4 
var loadModules = function() { 
    var modsArr, i, len; 
    if (!location.hash) return false; 

    modsArr = location.hash.substr(1).split(','); // ["mod1", "mod2", "mod3", "mod4"] 
    if (!modsArr.length) return false; 

    for (i=0, len = modsArr.length; i < len; i++) { 
     // Now you can load your mods. 
    } 

} 
+0

Ruby-guysがこの追加のハッシュタグ付けをすべてのページ – spacevillain

関連する問題