Durandal是在初始加载/预加载期间加载视图模型/视图,还是按需加载它们。
假设我有一个非常大的网站,每个视图有100个或更多的页面,每个视图都有一个相当大的viewModel。Durandal会预先加载所有这些内容吗?
每个视图中的数据调用如何,如果预先加载它们,所有这些调用都会被触发吗?
试图理解杜兰达的行为
发布于 2013-03-04 10:57:44
Durandal根据需要(按需)加载视图和视图模型。所以在你的例子中,有100个视图和视图模型,你只能加载你使用的视图和视图模型。查看浏览器工具的Network选项卡,您可以看到它们会根据需要显示出来。
此外,一旦它们是本地的,它们就被缓存在浏览器中,这是一件好事。
如果你的视图模型在“激活”时进行数据调用,那么是的,它们将在你每次激活它们时被调用。有关生命周期事件的更多信息,请参阅Durandal文档。
但是,如果您运行optimizer.exe,它将打包所有这些内容,并在前面的单个镜头(缩小)中将它们带到客户端。这不是我在开发过程中做的事情。但是,如果你想在上线后预先加载所有东西,这是一种让整个应用程序本地化的方法。
对于你的具有100+视图的应用程序,我可能会按我的方式加载,因为不太可能有人会在一次使用中达到100个浏览量(我猜是这样的)。这取决于您打算如何使用应用程序。
发布于 2013-03-04 00:13:23
我刚接触durandal,但我很确定你有两个选择。
您可以按需加载它们,这是默认的,或者您可以将其构建为一个应用程序,该应用程序会将所有应用程序文件缩小到一个包中。我不确定构建步骤的具体细节,但如果你采用这种方法,那么你的整个应用程序就可以一次性下载。
对于每个视图中的数据调用,您通常会在视图模型的激活函数中启动这些调用。因此,只有当你的视图模型被激活时,它们才会发生,而不是完全预先激活。
因此,对于您的场景,Durandal将非常好地工作。
https://stackoverflow.com/questions/15181714
复制相似问题