默认情况下不使用Backbone Marionette templateCache?

时间:2013-11-20 07:15:49

标签: templates caching backbone.js marionette

根据Derick Bailey的一篇文章,模板缓存内置于Backbone.Marionette

所以当我指定这样的模板时

 Backbone.Marionette.ItemView.extend({template : '#template1'});

它是否真的首次将模板 template1 存储到模板缓存中并随后从缓存中访问它? 我有这个疑问,因为当我检查全局TemplateCache对象时,实际上并没有存储它。我错过了什么吗?

每次都是从DOM中选择模板吗? (Derick甚至说 DOM选择很昂贵

我是Marionette的新手。非常感谢任何帮助。谢谢:)

2 个答案:

答案 0 :(得分:2)

Bt默认情况下,Marionette会读取DOM元素并通过下划线的template()函数运行它来将html模板编译成一个简单的JS函数。此功能是模板缓存中的功能。看一下木偶网站上提供的带注释的源代码,看看它是如何工作的,以及你可以在哪里插入来改变事物。

答案 1 :(得分:1)

根据文件https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.templatecache.md 当你这样做时

var template = Backbone.Marionette.TemplateCache.get("#my-template");

在模板var中你将有一个已编译的模板,但同时这个模板将存储在缓存中,因此下次使用该模板时,将使用缓存中的一个模板。

所以你首先需要使用marionette的templatecache对象来编译/存储模板

相关问题