ui-router preload app(全部或部分)

时间:2014-08-07 23:20:51

标签: angularjs angular-ui-router

我正在开发的应用程序使用" angular.js" +" ui-router" +" bootstrap"。许多州和嵌套的观点。还有一些与模板相关的图像,最后,动画过渡放置在那里以产生流动感。

在理想的网络条件下,应用程序运行良好。

在糟糕的网络条件下,这很糟糕。有时动画轻弹,有时在用户动作和界面响应之间会有暂停。 (例如:动画的开头)。流动的感觉无法实现。

当" ui-router"更改其状态,应用程序似乎锁定或轻弹动画或突然跳跃。

由于地理位置的原因,该应用程序将用于带宽有限的设备。

我可以预加载全部或部分应用程序,包括图像和其他资产吗?

1 个答案:

答案 0 :(得分:0)

  1. 您可以连接和缩小所有JS& CSS资产(如果您还没有这样做)。我使用grunt-neuter进行依赖管理。您还可以将所有依赖库捆绑在一起(我使用grunt-usemin)。

  2. 我没有尝试将所有模板捆绑到一个文件中,但这也应该是可能的。在这种情况下,您可以将每个模板包装在<script type="text/template"></script>块中,将所有内容包含在DOM中,然后拔出单个模板并提供给每个路径。这应该完全消除闪烁。

  3. 对于图像资源,有一些grunt插件,例如grunt-spritefiles,它们会获取一堆图像,然后创建一个sprite,然后可以在CSS中使用。

  4. 这些是我能想到的一些技巧。但是,以上可以显着增加第一次负载。您正在描述的用例可能是可以接受的。希望这有帮助!