4

我已经使用 DurandalJS 构建了一个应用程序——尽管我不知道该框架是否与此处相关。在 Firefox 和 Chrome 中,如果我单击深蓝色框(文件夹),性能会迅速下降,我不知道为什么。我单击的每个新文件夹都需要更长的时间才能打开 - 我可以看到它在打开大约 20-30 个文件夹后发生。

这些文件夹没有被缓存,应该基于单例视图模型:

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 分析器中,我看到如下内容:

在此处输入图像描述

我不确定这对那些更熟悉分析的人是否有意义,但我一生都无法弄清楚为什么会发生这种性能下降。

chrome 中的内存配置文件显示最大内存消耗约为 45 MB,但我必须等待页面绘制的时间确实越来越差。

现场直播在这里:

www.nogginator.com

知道为什么会发生这种情况吗?

4

1 回答 1

6

所以问题最终是视图模型中有太多东西shell,阻止垃圾收集回收它。将其分成几部分会对性能产生重大影响。

壳牌被分成

  • 一项authentication服务
  • sidebar视图模型
  • menu视图模型
  • 一些路由器配置
于 2013-08-18T06:49:05.257 回答