Javascript 渐进式增强-Node.js、Backbone.js
node.js服务器有两个角色:Javascript 渐进式增强-Node.js、Backbone.js,javascript,node.js,backbone.js,progressive-enhancement,Javascript,Node.js,Backbone.js,Progressive Enhancement,node.js服务器有两个角色: 带前缀/API的路由上的RESTFul API 在其他路线上呈现网站页面(//计划/功能/条款…) 目前,我的所有页面都呈现一个“加载页面…”与主干应用程序相结合,该应用程序在Backbone.router启动时替换DOM 我希望在用户到达页面时在服务器端构建网站页面,并在用户在网站上导航时让主干网处理导航的下一部分 我知道如何在服务器端,但在客户端当一个页面加载了已经构建的DOM时,Backbone.router加载并替换DOM,因为它不知道视图已经预加载
- 带前缀/API的路由上的RESTFul API
- 在其他路线上呈现网站页面(//计划/功能/条款…)
- 路由器:
- 主视图:
- 术语视图:
现在,我需要在第一次加载时调用runSlider方法。当您启动历史记录时,确保将
{silent:true}
作为一个选项传递给Backbone,让它知道您已经加载了一个完整的页面。这将防止路由器在视图已预加载(第一次)时替换DOM
从:
如果服务器已经呈现了整个页面,并且您不希望在启动历史记录时触发初始路由,请传递silent:true
因此,您的代码应该如下所示:
Backbone.history.start({pushState:true,silent:true})代码>你也能提供一些视图吗?当然,术语视图:我刚刚添加了home viewNice,这正是我想要的。但问题是,我如何开始比赛?例如,在我的主页上,我有一个滑块,init方法在HomeView中。对于RequireJS,我无法访问任何视图。我不确定我是否真的理解这个问题。当您执行this.homeView=new homeView()时
,其中,homeView
是您的homeView由RequireJS加载的,将调用homeView
上的initialize
函数。好的,我在homeView中有一个滑块,它由runSlider()方法初始化。加载HomeView时,需要调用此方法runSlider()。我在render中调用它,但在第一次加载时不调用render(silent:true)。但是如果我也在initialize中调用它,它将在所有视图上被调用(我的路由器在其initialize中加载所有视图)。因此,在第一次加载时,不再调用initialize方法。如何在HomeView上运行滑块?如何在首次加载时在HomeView上运行滑块?