有人可以解释为什么当用户单击 Durandal 的链接(导航)时,转换(至少是默认的入口)没有立即开始吗?
换句话说,我们是否需要两种机制(加载器动画 + 过渡)来指示正在执行的操作(例如,激活方法中的 ajax 调用)。
我确定有充分的理由,或者我只需要修改入口过渡?
有人可以解释为什么当用户单击 Durandal 的链接(导航)时,转换(至少是默认的入口)没有立即开始吗?
换句话说,我们是否需要两种机制(加载器动画 + 过渡)来指示正在执行的操作(例如,激活方法中的 ajax 调用)。
我确定有充分的理由,或者我只需要修改入口过渡?
似乎一旦激活函数解决,Durandal 的转换就会运行。我问了一个类似的问题,我列举了一些我发现的特别适合我的情况的可能解决方案:
希望这会有所帮助。
如果您没有压缩整个应用程序,那么第一个过程将是 requirejs 下载下一个 amd 模块,然后下载相应的视图。
下一步是 durandal 在您的模块上调用激活。如果它返回一个Deferred则激活,然后它将等待 deferred 完成。
一旦激活完成,就会调用转换。过渡负责将旧视图换成新视图。
所以,如果它需要一段时间才能开始转换,可能是因为它在下载模块和视图方面滞后......或者你的激活方法需要一些时间才能完成。