在 Dart 中,当你运行交叉编译的 JavaScript 时,有两种方法可以创建元素的实例,例如ButtonElement
:
动态(创建一个新按钮并将其添加到浏览器 DOM):
ButtonElement button = new ButtonElement();
button
..name="fizz"
..id="blah"
..onClick.listen(handle);
window.document.body.children.add(button);
静态(加载浏览器 DOM 中已经存在的现有按钮):
ButtonElement button = querySelector("#button") as ButtonElement;
button
..name="fizz"
..id="blah"
..onClick.listen(handle);
我对上述两种方法之间的速度和内存考虑感兴趣:
- 哪个更快,为什么?
- 哪个内存占用更小,为什么?
我的猜测是前一种方法速度较慢,因为它强制 JavaScript 创建ButtonElement
(占用 CPU 周期),然后必须将其添加到浏览器 DOM。
但是我完全不知道哪种方法对内存更有效,甚至不知道如何测试这种东西。