渐进式增强 – Node.js,Backbone.js
node.js服务器有两个angular色:
- 具有前缀/ api的路由上的RESTFul API
- 呈现其他路线上的网页(/ /计划/function/条款…)
目前,我的所有页面都会显示一个“加载页面…”,与Backbone.router启动时取代DOM的Backbone应用程序结合在一起。
我想在用户到达一个页面的时候在服务器端build立网站页面,当用户在网站上浏览时让Backbone处理导航的下一个部分。
我知道如何在服务器端但在客户端执行加载已经构build的DOM的页面时,Backbone.router加载并replaceDOM,因为它不知道视图已经预加载。
如何解决它的客户端?
码:
-
路由器: http : //pastebin.com/aUuXaVm9
-
主页视图: http : //pastebin.com/qS1tHUfq
-
术语视图: http : //pastebin.com/et1mrbLK
更新:新的代码: https : //gist.github.com/mathieug/d50c861e63dd647f1c2b
现在我需要在第一次加载时调用runSlider方法。
当您启动历史logging时,请务必传递{silent: true}
作为一个选项让Backbone知道您已经加载了一个完整的页面。 这将阻止路由器在视图已被预加载(第一次)时replaceDOM。
来自Backbone.js文档 :
如果服务器已经呈现整个页面,并且您不想在启动历史logging时触发初始路由,请传递
silent: true
。
所以,你的代码应该是这样的:
Backbone.history.start({pushState: true, silent:true});