在制作Backbone.js应用程序时,有时您正在加载一个新视图,在页面呈现之前需要一些时间,并且由于新视图不进行真正的浏览器导航,因此页面似乎什么都不做。
通常,浏览器会在导航发生时显示一个旋转的轮子或“等待 yadayadayada.com”,以便用户知道正在发生的事情,但是对于 Backbone,我们使用 pushState 来更新 url,并且 javascript 处理绘制新页面。如果此新页面需要几秒钟才能呈现,则该页面将变得无响应。
我试图在我的路由器中向页面呈现加载图标,以便用户知道活动正在幕后发生,但是当该活动在 JS 中发生时,它会冻结 UI(在我的情况下,加载图标永远不会得到渲染到页面,因为 UI 在绘制到页面之前冻结)。
有没有人想出解决这个问题的办法?我确定我不是第一个遇到这个问题的人。