【问题标题】:Why does DART make my site SOOOOO slow?为什么 DART 让我的网站变得如此缓慢?
【发布时间】:2014-06-10 05:57:06
【问题描述】:

同学们!

我一直在这个网站 (www.2winbet.gr) 工作。

本周添加了一个登录界面,该界面是使用 polymerDart 中构建为一个小插件的网站。

这一切都“工作”,我对我设法在 Dart 中构建这个组件的速度感到非常满意......但是......但是......在我添加它之后,网站变得超级慢! !...

如果我删除它,网站又超级快了...

我的 dart 代码又小又简单……我真的不明白问题出在哪里……

你能指出我在这里做错了什么吗?当作为一个小组件添加到上面有一些动画的 Wordpress 网站时,我不敢相信这是 Dart 能做的最好的事情。

感谢转发

【问题讨论】:

  • 您是使用 dart2js 手动编译,还是使用 Pub Build 生成 JavaScript?一个“Pub Build”(来自编辑器)将运行 dart2js 编译器以及所有可能的编译器优化。它将减少您的 JS 输入的大小,并且应该有助于整个页面加载/脚本执行时间。
  • 我在主 HTML 文件上单击鼠标右键,然后单击“以 Javascript 运行”,然后获取在“构建”文件夹中创建的文档。我想有更好的方法...?
  • 尝试单击工作区中的项目,然后执行工具 -> Pub Build。看看这是否会产生更小的输出。
  • 做到了,但实际上并没有什么区别,而且网站的渲染速度很慢,尤其是在滚动时。
  • 我将这 4 行添加到 标签中:

标签: wordpress dart dart-polymer


【解决方案1】:

我问过 John Messerly(他正在研究 Dart's Polymer):

这看起来是 Polymer 的错。 Polymer 依赖于 shadow DOM,但似乎没有好的方法 polyfill 该功能,而不包装 DOM 中的每个节点。

polyfill 应该尽可能快,但是,由于包装,有一些不可避免的成本。实际开销取决于 DOM 的大小以及 DOM 操作与其他应用程序代码的比率。不过,可能还有一些特别缓慢的区域尚未受到影响。尤其是事件派发似乎很难实现。

获取更多数据可能会很有趣。 (请随时通过错误跟踪器与我们联系)。

您可能会在本机实现上获得最佳性能。 Chrome 35 正在发货。 Firefox 正在试验一种实现方式。

您还可以尝试重构您的应用程序,以便阴影 DOM/Polymer.dart 部分包含在 iFrame 中。这样就不会影响页面上的其他内容。

【讨论】:

  • 我在分析时意识到影子 DOM 是拉低性能的黑色力量。 (我们甚至在办公室开玩笑说它之所以被称为“SHADOW”肯定是有原因的...... uuuuhhh :) )事实上,当它在本地运行时,一切都运行顺利......但我不能依赖它。我会接受将组件重构为 iFrame 的建议。我相信这是我拥有的最明智的选择。我会在这里告诉你进展如何。谢谢弗洛里安
  • 我有与 iFram 实施相关的后续问题。也许你可以帮我解决这个问题。 stackoverflow.com/questions/23404768/…
猜你喜欢
  • 2016-03-27
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
相关资源
最近更新 更多