javascript - Ember JS 入门 - 屏幕闪烁

标签 javascript google-chrome ember.js ember-cli single-page-application

我目前正在浏览 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#transitionToController#transitionToRoute .

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

确实,watchman是一个可选升级,可缩短检测文件更改所需的时间/提高其可靠性。它不应该影响您所描述的闪烁。

关于javascript - Ember JS 入门 - 屏幕闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510041/

相关文章:

javascript - 使用鼠标悬停更改颜色以使用 Angular 工作

javascript - 根据classname查找TD中具有特定值的TR的数量

Mozilla Firefox 中的 JavaScript 排序函数输出与 Google Chrome 中不同

ember.js - ember-simple-auth 不会为每个请求添加 Token

javascript - 如何设置默认 ember cli 代理

ember.js - 从 ember .save() 方法中检索呈现的 json

javascript - 如何进行实时同步编辑?

javascript - 使用javascript从html中删除div

node.js - HTTP - 如何发送多个预缓存的压缩 block ?

javascript - 同步 Ajax - Chrome 是否对可信事件超时?