Ember JS入门-屏幕闪烁

Ember JS Getting Started - Screen Flicker

我目前正在阅读 Ember 2.13 的 getting started 指南。

我已经开始添加我的第一条路线:/scientists 路线。我很担心,因为当我进入那个 URL 时,屏幕会闪烁,我没想到这种基本的 SPA 会发生这种情况。

我添加了 link here,展示了更改 URLs 时的闪烁。

我对 Chrome 中的重绘有什么误解吗?因为在 Safari 中它似乎工作正常。但我倾向于认为这是因为一些 Safari 优化而不是 Ember 在 Safari 中而不是 Chrome。

我正在使用 ember serve 命令。它还说 watchman 没有安装,但因为那只是为了发现文件更改,我认为它不会影响这个。

它闪烁的原因是,如果您手动更改 URL 并按回车键,则会导致页面重新加载(这会导致 Ember 应用程序重新初始化)。要在路由之间无缝转换(无需 flicker/page 重新加载),您需要使用 Ember 的 {{link-to}} helper. The {{link-to}} 帮助程序不会导致页面重新加载,只会转换到新路由,这与更改不同URL 手动。

controllerrouter 上下文中还有其他方法可以这样做。主要是 Route#transitionToController#transitionToRoute.

在 Ember 应用程序中进行路由时,您应该始终使用上述方法之一。确保您不使用 <a> 标签或更改 window.location。这些方法会起作用,但会在重新获取和初始化 Ember 应用程序时引起明显的闪烁。

事实上,watchman 是一个可选的升级,可以提高 takes/the 检测文件更改的可靠性。它不应该影响您描述的闪烁。