![](/img/trans.png)
[英]Django templates seems that is not loading Backbone.js in correct order
[英]Is having Django and Backbone.js double templates avoidable?
我有一个复杂的不是SPA(不是单页应用程序)的经典多页站点,我想在其中使用Backbone.js。
该应用程序的服务器端由Django驱动。
我的问题是:出于SEO的原因, 我必须使用django模板加载服务器端的每个html内容 ,但是要获得Backbone的全部功能, 我需要使用下划线的模板(或车把)来刷新主干网的视图 。
因此,我必须用相同的模板和钩子两次编写相同的模板。
如何避免这种情况?
实际上,您可以编写单页应用程序,并且仍然支持SEO。 骨干路由器通过为应用程序的每种状态创建一个单独的URL来实现此目的。 您在整个应用程序中的链接将被爬网。 如今,Google在抓取SPA方面做得很好。 我认为您决定不将自己的网站创建为SPA的决定受到了过时意见的影响。
基本上,您可以做到这一点,只需确保您不第一次在视图上调用渲染。
说我的页面有这个html
<ul class="my-list">
<li><a href="#">do something</a></li>
<li><a href="#">do something</a></li>
<li><a href="#">do something</a></li>
</ul>
最初,您定义一个视图
var MyView = Backbone.View.extend({
el:'.my-list',
render:function(){
this.collection.each(this.addItem, this);
},
addItem:function(){
//do adding logic here
}
})
实例化使用,但不调用render
var myView = new MyView({
collection: myCollection //any collection or model you like here
})
每当您要更新视图时,请调用myView.render。 通过这种方式,您可以获得SEO和骨干网的好处。 我猜像You Tube这样的流行Web应用程序确实遵循类似的方法(可能未使用Backbone)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.