Dart では、クロスコンパイルされた JavaScript を実行する場合、要素のインスタンスを作成する方法が 2 つあります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);
上記の2つの方法間の速度とメモリの両方の考慮事項に興味があります。
- どちらが速いですか、なぜですか?
- メモリフットプリントが小さいのはどれですか?その理由は?
私の推測ButtonElement
では、前者の方法は、JavaScript に(CPU サイクルを消費する) を強制的に作成させ、それをブラウザーの DOM に追加する必要があるため、処理が遅くなります。
しかし、どの方法がメモリに関してより効率的であるか、またはそのようなことをテストする方法さえまったくわかりません。