我正在搜索javascript模板引擎,该引擎在大型js应用程序中使用时具有良好的性能,并且非常适合移动应用程序。所以我已经完成了各种jsPerf测试。似乎有很多显示出不同的结果,并且很难找出哪个是标准测试。
有人可以指导我一个我可以参考的标准jsPerf,并且还应该包括以下模板灰尘,下划线,hogan,小胡子,把手。
从我观察到的情况来看,dot.js是一个不错的表演者 渲染速度,但对于大型应用程序是否足够成熟?
jsPerf测试中显示的是什么是“with”和“no with”(特定于 underscore.js )? 有人可以解释一下。
在所有的测试中我都看过像小胡子这样的流行模板, 车把,灰尘,hogan等似乎落后于性能 其他模板,所以为什么人们使用它们离开顶部 表演者,是因为这些模板引擎的成熟度?
提前致谢
答案 0 :(得分:7)
有人可以指导我一个我可以参考的标准jsPerf 还应该包括以下模板灰尘,下划线,hogan, 小胡子,车把。
我知道非手。这需要吗?为什么呢?
显示的是“with”和“no with”(特定于underscore.js) 在jsPerf测试?有人可以解释一下。
_.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" });
另请注意,如果第二个参数为null,undefined或not given,则template函数返回已编译的模板。所以在覆盖变量的情况下:
var renderFn = _.template("<%= override.myvar %>", null, { variable: "override" });
renderFn({ myvar: "foo" });
在所有的测试中,我都看过像小胡子这样的流行模板, 车把,灰尘,霍根等似乎落后于其他性能 模板,所以为什么人们使用它们离开顶部 表演者,是因为这些模板引擎的成熟度?
并非JavaScript中的所有内容都与性能有关。在可伸缩性,可维护性,可读性和便利性之间必须保持平衡。经验法则是代码的可读性和便利性,然后只在需要时优化性能。有一个SO thread对该主题进行了很好的讨论。
因此,为了回答,通常选择其他模板方法,其性能优先于其他方法。