【发布时间】:2015-03-24 13:06:51
【问题描述】:
我希望允许用户直接从服务器或使用链接请求我网站的网页,这将由 Backbone 的路由器处理。
当用户直接从服务器请求网页时,会提供一个完整的页面(包含 html、head、body、样式表和脚本)。
另一方面,当用户通过点击链接请求网页时,只会请求页面的相关部分,然后将其插入正确的位置,而网页的其他元素保持不变。
插入正确的位置我的意思是在到达特定路线后创建一个视图。然后视图被初始化并调用它的渲染方法来获取网页的相关部分并使用$el.html(content)将其插入到DOM中。
但我不想在直接从服务器获取网页时调用视图的渲染方法,因为所有需要的内容都已渲染,重新渲染只会导致一些 ui 闪烁效果。
是否有一些常见的方法可以让视图知道它们不应该呈现自己,因为已从服务器获取完全呈现的网页?
我可以将clientSideNavigation = true 之类的标志传递给路由器,每次单击链接时,路由器都会将其传递给视图,以便它们知道是否呈现内容。
但是当用户使用后退/前进按钮时它不起作用。
我还可以检查一个视图是否在其$el 内有一些特定元素应该出现在此网页上 - 例如,如果我有一个名为 CatsView 的视图,我可以检查 #cats-box 是否在其内$el 元素。但它涉及更多的 DOM 操作,我宁愿避免。
【问题讨论】:
标签: javascript html backbone.js single-page-application