「innerHTML = ...」と「appendChild(txtNode)」
Web 開発の分野における HTML のコンテンツの変更要素の作成は一般的なタスクです。この目的で広く使用されている 2 つの方法は、innerHTML の割り当てとテキスト ノードの追加です。ただし、これらのメソッドには、パフォーマンスと動作に影響を与える明確な特性があります。
innerHTML 割り当て
innerHTML プロパティを設定すると、ターゲット要素のコンテンツ全体が直接変更されます。このプロセスには、提供された HTML 文字列の解析と要素の DOM 構造の再構築が含まれます。その結果、innerHTML の割り当てにより要素とその子孫の完全なリフローがトリガーされ、ページのレイアウトとレンダリングに影響を与える可能性があります。
さらに、innerHTML の割り当てにより、ターゲット要素内の子ノードへの既存の参照がすべて無効になります。これは、古いノードが基本的に新しく生成されたノードに置き換えられるためです。
appendChild()
逆に、appendChild() を介してテキスト ノードを追加しても、完全な DOM の再構築。代わりに、指定されたテキスト コンテンツを既存の要素に追加するだけです。これにより、より局所的なリフローが発生し、テキストが追加された直後の領域のみに影響します。
innerHTML の割り当てとは異なり、appendChild() は既存のノードへの参照を保持します。これは、DOM の構造が変更されないためです。むしろ、既存のツリーを中断することなく新しいコンテンツを追加します。
パフォーマンスに関する考慮事項
一般に、既存の要素にコンテンツを追加するには、appendChild() の方が効率的であると考えられます。 DOM の解析と再構築のコストが回避されるため、発生するオーバーヘッドが少なくなります。ただし、要素のコンテンツ全体を置き換えるなど、特定のシナリオでは、innerHTML の割り当ての方が便利な場合があります。
代替オプション
innerHTML と appendChild(
以上がinnerHTML = '...' vs appendChild(txtNode): 各メソッドをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。