根据Derick Bailey的一篇文章,模板缓存内置于Backbone.Marionette
所以当我指定这样的模板时
Backbone.Marionette.ItemView.extend({template : '#template1'});
它是否真的首次将模板 template1 存储到模板缓存中并随后从缓存中访问它? 我有这个疑问,因为当我检查全局TemplateCache对象时,实际上并没有存储它。我错过了什么吗?
每次都是从DOM中选择模板吗? (Derick甚至说 DOM选择很昂贵)
我是Marionette的新手。非常感谢任何帮助。谢谢:)
答案 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对象来编译/存储模板