angular.js - 解析 html 函数需要 2000 毫秒甚至更多

angular.js - parse html function is taking 2000ms and much more

我正在尝试加速我的网站。这是我在 chrome 的 Timeline/Profile JS 开发者工具中找到的。在包含 150 个蓝色 Parse HTML(在屏幕中)。

这是加载时间的 50%。我使用平板电脑对其进行了测试,该功能甚至花费了 15000 毫秒!我正在这样设置路由提供商:

var start = '<div class="important">';
var end = '</div>';
$routeProvider.when('/test', {
   template: start + 'some short text' + end
});

怎么了?网站的完整大小为 500kb。它有 97 个范围。

编辑:如果我在平板电脑上不使用 angular 测试网站,加载时间为 2.5 秒(正如我在上面用 angular 指出的那样超过 18 秒)。我愿意为解决方案付费。

我还添加了我调试(在平板电脑上)的 timeline data。您可以在 Chrome 上查看时间表。打开开发者控制台(F12)。单击选项卡时间线。右键单击此选项卡,然后选择加载时间线数据。

编辑 2:我正在使用 angular-material,我认为这可能是问题所在,这可能是所有解析 html 的原因,因为例如有很多按钮。

你没有post你的代码,但是下面是缓慢的制造者:

  • 回流、重绘、解析 HTML 过多
  • 脏检查速度慢
  • 太多 DOM 操作

简而言之,解决方案如下:

  • 将指令与内联模板一起使用
  • 使用 $templateCache
  • 重用内存而不是分配新内存
  • 少用手表
  • 推迟元素创建
  • 防止大而复杂的 ng 重复(例如应用分页)
  • 防止来自一个页面的多个(初始)请求

哪里错了?

使用除 Chrome 开发人员栏之外的工具 Batarang 来调试和分析您的 angularjs 应用。从以下网址下载: https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk

在此处阅读更多内容: