[英]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.