参照できる標準の jsPerf を教えてもらえますか。これには、ダスト、アンダースコア、ホーガン、口ひげ、ハンドルバーのテンプレートも含まれている必要があります。
私は手に負えないことを知っています。それは必要ですか?なんで?
アンダースコア
jsPerf テストで表示される "with" および "no with" (underscore.js に固有) とは何ですか? 誰かが説明できますか。
あり、便利、遅いパフォーマンス
_.template("<%= myvar %>", { myvar: "foo" });
ない、不便、速いパフォーマンス
_.template("<%= data.myvar %>", { myvar: "foo" }, { variable: "data" });
両方の長所
_.extend( _.templateSettings, { variable: "data" } ); // Do this once.
_.template("<%= data.myvar %>", { myvar: "foo" });
_.template("<%= data %>", "foo");
_.template("<%= override.myvar %>", { myvar: "foo" }, { variable: "override" });
また、テンプレート関数は、2 番目の引数が null、未定義、または指定されていない場合、コンパイル済みのテンプレートを返すことに注意してください。したがって、オーバーライド変数の場合:
var renderFn = _.template("<%= override.myvar %>", null, { variable: "override" });
renderFn({ myvar: "foo" });
パフォーマンスと可読性
私が見たすべてのテストで、口ひげ、ハンドルバー、ダスト、ホーガンなどの人気のあるテンプレートは、他のテンプレートよりもパフォーマンスが劣っているように見えます。
JavaScript のすべてがパフォーマンスに関係しているわけではありません。スケーラビリティ、保守性、読みやすさ、利便性のバランスが必要です。経験則は、読みやすさと利便性のためのコードであり、必要な場合にのみパフォーマンスを最適化します。このトピックについてよく議論されているSO スレッドがあります。
答えを言うと、他のテンプレート メソッドは、他のテンプレート メソッドよりも優先度の低いパフォーマンスで選択されることがよくあります。