0

現在、私が取り組んでいるバックボーン プロジェクトで、すべてのテンプレートをモジュールごとに結合しました。何かのようなもの:

  • users.html
    • #profileTemplate
    • #changePasswordTemplate
    • ...
  • something.html
    • #someTemplate
    • #anotherTemplate

次に、必要に応じてモジュールごとにテンプレートをロードします$.get。Backbone Marionette を使用してこれらのテンプレートをロードするつもりであり、推奨される方法は次のとおりです:リンク

Backbone.Marionette.TemplateCache.loadTemplate = function(templateId, callback){
  var that = this;
  var url = templateId + ".html";

  $.get(url, function(templateHtml){
    var template = $(templateHtml).find(templateId);
    callback(template);
  });
}

これは、テンプレートをさらに多くのファイルに分割する必要があることを意味します。つまり、より多くのネットワーク リクエストが必要になります。これを行うための推奨される方法は何ですか?すべてを 1 つの大きなファイルに結合するか、多数の小さなファイルに結合するか、モジュールによってその間のどこかに結合しますか? モジュールによって、それを試していないパラメータを追加する必要がある場合loadTemplate(moduleUrl, templateSelector, callback)は、明日それを行いますが、何も壊さなくても推奨されますか? サードパーティのフレームワーク メソッドをオーバーライドしていますが、さらに悪いことに、そのメソッド シグネチャを変更していますか? 推奨される解決策は何ですか?

たぶん、RequireJS を使用しているため、テンプレートを Require 経由でロードできますか?

4

1 に答える 1

3

これを行うための推奨される方法は何ですか?

推奨される方法は、ファイルを非同期的にロードしないことです。可能な限り、必要なものをすべて一度に、すぐにロードします。

「非同期は物事を速くするものではありません。非同期は、何かを十分に速くすることができないときに行うものです。」- https://twitter.com/izs/status/216954021926285313

たぶん、RequireJS を使用しているため、テンプレートを Require 経由でロードできますか?

はい。

RequireJS でテンプレートを事前にコンパイルし、r.js プラグインを使用してアプリのファイルに連結することで、テンプレートを最適化します。これにより、アプリのパフォーマンスが大幅に向上します。

...

テンプレートとモジュールの非同期読み込みを本当に行う必要がある場合は、これまで考えてきた方法で可能な限り最小数のファイルにグループ化してください。これを処理するには、参照したコードを変更する必要があります。

于 2012-07-16T17:00:01.343 に答える