为啥 DART 让我的网站变得如此缓慢?
Posted
技术标签:
【中文标题】为啥 DART 让我的网站变得如此缓慢?【英文标题】:Why does DART make my site SOOOOO slow?为什么 DART 让我的网站变得如此缓慢? 【发布时间】:2014-06-10 05:57:06 【问题描述】:同学们!
我一直在这个网站 (www.2winbet.gr) 工作。
本周添加了一个登录界面,该界面是使用 polymer 在 Dart 中构建为一个小插件的网站。
这一切都“工作”,我对我设法在 Dart 中构建这个组件的速度感到非常满意......但是......但是......在我添加它之后,网站变得超级慢! !...
如果我删除它,网站又超级快了...
我的 dart 代码又小又简单……我真的不明白问题出在哪里……
你能指出我在这里做错了什么吗?当作为一个小组件添加到上面有一些动画的 Wordpress 网站时,我不敢相信这是 Dart 能做的最好的事情。
感谢转发
【问题讨论】:
您是使用 dart2js 手动编译,还是使用 Pub Build 生成 javascript?一个“Pub Build”(来自编辑器)将运行 dart2js 编译器以及所有可能的编译器优化。它将减少您的 JS 输入的大小,并且应该有助于整个页面加载/脚本执行时间。 我在主 html 文件上单击鼠标右键,然后单击“以 Javascript 运行”,然后获取在“构建”文件夹中创建的文档。我想有更好的方法...? 尝试单击工作区中的项目,然后执行工具 -> Pub Build。看看这是否会产生更小的输出。 做到了,但实际上并没有什么区别,而且网站的渲染速度很慢,尤其是在滚动时。 我将这 4 行添加到 标签中: 【参考方案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 实施相关的后续问题。也许你可以帮我解决这个问题。 ***.com/questions/23404768/…以上是关于为啥 DART 让我的网站变得如此缓慢?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 ember-cli 构建时间在 Windows 上如此缓慢?