我目前正在浏览 getting started Ember 2.13 指南。
我已经完成添加第一条路线的步骤:/scientists
路线。我很担心,因为当我访问该 URL 时,屏幕会闪烁,对于这样一个基本的 SPA 来说,我根本没想到会发生这种情况。
我添加了一个链接 here ,展示更改 URL 时的闪烁。
我对 Chrome 中的重绘有什么误解吗?因为在 Safari 中它似乎工作得很好。但我倾向于认为,这是因为 Safari 进行了一些优化,而不是 Ember 在 Safari 而不是 Chrome 中完成了它的工作。
我正在使用emberserve
命令。它还说未安装watchman
,但由于这只是为了发现文件更改,我认为它不会影响这一点。
最佳答案
它闪烁的原因是,如果您手动更改 URL 并按 Enter 键,则会导致页面重新加载(这会导致 Ember 应用程序重新初始化)。要在路线之间无缝转换(没有闪烁/页面重新加载),您需要使用 Ember 的 {{link-to}}
helper 。 {{link-to}}
与手动更改 URL 不同,helper 不会导致页面重新加载,而只是转换到新路由。
在 controller
中还可以使用其他方法来执行此操作或router
语境。主要是Route#transitionTo
和Controller#transitionToRoute
.
在 Ember 应用程序中进行路由时,您应该始终使用上述方法之一。确保您不使用<a>
标签或更改 window.location
。这些方法可以工作,但在重新获取和初始化 Ember 应用程序时会导致明显的闪烁。
确实,watchman
是一个可选升级,可缩短检测文件更改所需的时间/提高其可靠性。它不应该影响您所描述的闪烁。
关于javascript - Ember JS 入门 - 屏幕闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510041/