【问题标题】:How should I handle page refreshes in EmberJS?我应该如何处理 Ember JS 中的页面刷新?
【发布时间】:2015-03-29 23:33:33
【问题描述】:

我从EmberJS Guide to Routing 了解到,您应该在Routemodel 挂钩中指定要加载的路由模型。模型钩子可能会返回一个 Promise,如果返回,路由将暂停,直到 Promise 解决。

这就是我的问题:这种方法在正常用例下非常有效(用户触发从任何其他路由到相关路由的转换。)如果用户当前在该路由上,就会出现问题有问题。

如果用户触发页面刷新(使用浏览器的刷新按钮,或ctrl+r 或任何其他可能的触发器,model 挂钩中的promise 会导致用户坐在空白页面上,直到该承诺会返回。在大型数据集的情况下,这可能需要几秒钟,这不会带来出色的用户体验。

那么,我该如何解决这个问题?

我开发的唯一解决方案是在路由的activate 挂钩中触发数据加载,并在该承诺返回时手动设置控制器的模型。我不喜欢这样做,因为我绕过了 Ember 的整个模型框架。

我希望application 模板至少在model 挂钩挂起页面之前呈现。任何有关如何解决此问题的指导将不胜感激。

如果上下文是必要的:正如标签所暗示的,我使用的是 Ember-Data。我使用的 RESTAdapter 几乎完全是开箱即用的,未经修改。

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    路由具有子状态,可用于在模型加载时呈现临时模板。见:http://guides.emberjs.com/v1.10.0/routing/loading-and-error-substates/

    第一个加载/初始空白页是一个UX问题,将通过Fast Boot解决,见:http://emberjs.com/blog/2014/12/22/inside-fastboot-the-road-to-server-side-rendering.html

    快速启动已经通过 Ember 的一个分支提供,我不知道名称。

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 2016-05-08
      • 2015-02-01
      • 2020-06-28
      • 2021-06-08
      • 2012-03-25
      • 2012-12-01
      • 1970-01-01
      相关资源
      最近更新 更多