首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拥有Django和Backbone.js双重模板是可以避免的吗?

拥有Django和Backbone.js双重模板是可以避免的吗?
EN

Stack Overflow用户
提问于 2013-10-15 10:55:20
回答 2查看 462关注 0票数 1

我有一个复杂的非SPA (非单页应用程序),一个经典的多页网站,我想在其中使用Backbone.js。

应用程序的服务器端是Django提供的。

我的问题是:由于SEO的原因,我必须加载每个html内容服务器端,使用django模板,但是为了获得主干的完整的,我需要下划线的模板(或工具栏)来刷新主干的视图

因此,我必须用不同的技术和钩子编写相同的模板两次。

我怎么才能避免这种情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-15 13:19:51

实际上,您可以编写一个单页应用程序,但仍然支持SEO。主干的路由器通过为应用程序的每个状态创建一个单独的URL来实现这一点。整个应用程序的链接将被爬行。谷歌最近在搜索SPA方面做得很好。我相信你的决定,不创建你的网站作为一个SPA是影响了陈腐的意见。

票数 1
EN

Stack Overflow用户

发布于 2013-10-15 16:20:06

基本上,您可以这样做,您需要确保的是,您不需要第一次调用呈现视图。

假设我的页面有这个html

代码语言:javascript
复制
<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>

最初您定义了一个视图

代码语言:javascript
复制
var MyView =  Backbone.View.extend({
  el:'.my-list',
  render:function(){
    this.collection.each(this.addItem, this);
  },
  addItem:function(){
    //do adding logic here
  }
})

实例化使用,但不要调用呈现

代码语言:javascript
复制
 var myView = new MyView({
    collection: myCollection //any collection or model you like here
 })

当您想要更新视图时,请调用myView.render。通过这一点,你得到了SEO和主干两者的好处。我想像你这样流行的web应用程序确实遵循类似的方法(可能不使用主干)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19379470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档