我在Backbone中构建网站,并且网站结构与Youtube相似,因为当您使用页面链接更改页面时,只有一部分DOM(即非 - 导航组件)被重新加载而不是整个文档。在骨干中多次初始化视图
因此,当用户访问使用我的网站上的链接子页面,骨干会发出一个AJAX调用和接收HTML的子页面,这将是这个样子:
<section id="SubpageView">...</section>
<script>
// Defines the view that controls #SubpageView.
if(typeof SubpageView !== 'undefined') {
// If this is the first time the page is loaded, create class.
var SubpageView = Backbone.Model.extend({
el: '#SubpageView',
...
});
}
MainView.currentSubpage = new SubpageView();
</script>
是任何缺点(即僵尸视图,内存泄漏等)多次调用SubpageView()?在我看来,定义一个视图元素使用el而不是tagName适用于仅使用一次的元素。
注意:我知道单页网络应用程序通常会将其所有模板都烘焙到持久性DOM中,并且所有HTML均使用客户端模板进行处理。但是因为我设计的网站在不使用pushState()的情况下降级到传统的服务器端呈现,或者Javascript被禁用时,我不想将所有模板都烧到持久性DOM中。
你可以使用jQuery来多次注入View。例如你有标签'elems'div元素和循环创建一个视图。 。'$( “elems的”)追加(yourElem);' –