我们有一个余烬单页应用程序。在特定页面上,单击超链接时,我要在新窗口中打开特定路线。
这里的问题是,它开始下载所有js文件(main.js)并对会话进行身份验证,然后才加载路由。这会花费太多时间,并给用户带来糟糕的体验。由于只有在用户已经登录时才能单击超链接,有没有办法避免在ember中下载所有js文件和身份验证?类似当前窗口的子窗口,因此路由将立即加载。
有一种避免下载所有js文件的方法
除非浏览器将标头设置为不缓存JS文件,否则它们应由浏览器缓存。但是也许文件是从缓存中加载的,但是您遇到的延迟是脚本的解析和执行。使用SPA无法避免这种情况。
您可以通过FastBoot使用服务器端渲染来缩短感知到的延迟。这将意味着该路由将立即呈现,但是在所有客户端脚本都已执行之前,用户将无法与之完全交互。
灰烬中的身份验证
我不认为这会增加太多延迟,因为您应该已经在另一个窗口中进行了身份验证,因此应该只检查Cookie或HTTP标头。
类似于当前窗口的子窗口,因此将立即加载路由。
由于拥有SPA,因此您应尽量避免打开新窗口,因为当前窗口中已加载了所有内容。用户可以通过浏览器的“后退”按钮轻松返回上一页,并且这几乎是瞬间的。
是否有特定的业务原因,因此必须将其放在新窗口中?