我使用DurandalJS构建了一个应用程序 - 虽然我不知道框架是否与此相关。在Firefox和Chrome中,如果我点击深蓝色框(文件夹),性能会迅速降低,我不知道为什么。我点击的每个新文件夹都需要更长时间才能打开 - 我可以看到它在打开大约20-30个文件夹后发生。
这些文件夹未被缓存,应该基于单例viewModel:
define(['services/dataservice', 'durandal/plugins/router', 'durandal/app', 'services/hub', 'viewmodels/setVm', 'viewmodels/folderVm'],
function (dataservice, router, app, hub, SetViewModel, FolderViewModel) {
// define vm
return vm;
}
在FF Profiler中,我看到类似这样的内容:
我不确定这对于那些更熟悉分析的人是否有意义,但我不能为我的生活找出为什么会出现这种性能下降。
chrome中的内存配置文件显示最大内存消耗约为45 MB,但我必须等待页面绘制的时间会逐渐变差。
现场网站在这里:
知道为什么会这样吗?
答案 0 :(得分:6)
所以问题最终导致shell
视图模型中有太多东西,阻止垃圾收集回收它。将其拆分成几个部分会对性能产生重大影响。
Shell分为
authentication
服务sidebar
viewmodel menu
viewmodel