我们有一个ember单页应用程序。在一个特定的页面上,同时点击一个超链接,我想在新窗口中打开一个特定的路线。这里的问题是,它开始下载所有的js文件(main.js)并验证会话,然后只有它加载路由。这花费了太多的时间,给用户带来了很差的体验。由于只有当用户已经登录时才能点击超链接,有没有办法避免下载所有的js文件并在ember中进行验证?类似于当前窗口的子窗口,以便立即加载路由。
gkl3eglg1#
有没有办法避免下载所有的js文件它们应该被浏览器缓存,除非你让你的服务器设置头文件不缓存你的JS文件。但是也许文件是从缓存中加载的,但是你遇到的延迟是你的脚本的解析和执行。这是SPA无法避免的。您可以通过FastBoot使用服务器端呈现来缩短感知延迟。这意味着路线会立即呈现,但用户在所有客户端脚本执行完毕之前无法与之进行完全交互。成员身份验证我不认为这会增加太多的延迟,因为它应该只是检查cookie或HTTP头,因为您已经在另一个窗口中进行了身份验证。类似于当前窗口的子窗口的东西,这样路由就会被立即加载。由于您有SPA,您应该尽量避免打开新窗口,因为所有内容都已加载到当前窗口中。用户可以通过浏览器的后退按钮轻松返回到上一页,这也应该是几乎即时的。是否有特定的业务原因需要在新窗口中显示?
1条答案
按热度按时间gkl3eglg1#
有没有办法避免下载所有的js文件
它们应该被浏览器缓存,除非你让你的服务器设置头文件不缓存你的JS文件。但是也许文件是从缓存中加载的,但是你遇到的延迟是你的脚本的解析和执行。这是SPA无法避免的。
您可以通过FastBoot使用服务器端呈现来缩短感知延迟。这意味着路线会立即呈现,但用户在所有客户端脚本执行完毕之前无法与之进行完全交互。
成员身份验证
我不认为这会增加太多的延迟,因为它应该只是检查cookie或HTTP头,因为您已经在另一个窗口中进行了身份验证。
类似于当前窗口的子窗口的东西,这样路由就会被立即加载。
由于您有SPA,您应该尽量避免打开新窗口,因为所有内容都已加载到当前窗口中。用户可以通过浏览器的后退按钮轻松返回到上一页,这也应该是几乎即时的。
是否有特定的业务原因需要在新窗口中显示?