10

イベントと SO の回答が「泡立つ」と聞いたことがありますが、泡とは何の関係があるのでしょうか?

4

2 に答える 2

17

イベント バブリングとは、適切な設計により、通常は情報が下向きにのみ流れるように指示されている場合に、情報が深い構造を通って上に移動するという考え方です。

非常に基本的な用語で言えば、単一のオブジェクトを考えてください。適切に設計されていれば、このオブジェクトは自身の子オブジェクトについてのみ認識している必要があります。親との直接的な相互作用はありません。その子オブジェクトと親オブジェクトは、同じ規則に従う必要があります。実際には、これは情報が下向きにしか流れないことを意味します。親はメソッドを呼び出し、子にデータを送信したり、子からデータを抽出したりできますが、子は親に同じことを強制することはできません。

水中で気泡を吹き飛ばすとどうなるか考えてみてください。空気を水面に向かって押し出す必要はありません。放すだけで、空気は自然に動きます。イベント バブリングにも同じ概念が適用されます。より深いコントロールは、通常はイベントを介して情報を「解放」し、直接何も呼び出さずにチェーンを「フロート」します。

Stackoverflow のような Web サイト (または実質的にあらゆる種類のサイト) に関しては、バブリングの概念は同じです。明らかに、個々の投稿が直接ホームページに表示されるべきではありませんが、1 つの投稿が更新されると、そのイベントは階層の最も深いポイント (1 つの投稿) から解放され、最終的には最上位レベルに移動します。 (ホームページに表示するかどうかの選択) が処理されます。

于 2009-08-31T03:18:26.100 に答える
4

この用語についてお尋ねの場合は、気泡が液体で発生するように、イベントが上部まで「泡立つ」ことへのアナロジーだと思います。

バブリングとは何かを尋ねている場合、それは 1 つのオブジェクトによってキャッチされ、それをリッスンしている他のオブジェクトに再起動するイベントです。

ここで良い記事を引用するには

... 子コントロールがその包含階層にイベントを伝播できるようにする、イベント バブリングと呼ばれる手法。イベント バブリングを使用すると、コントロール階層内のより便利な場所からイベントを発生させることができ、イベント ハンドラーを元のコントロールだけでなく、バ​​ブリングされたイベントを公開するコントロールにもアタッチできます。

于 2009-08-31T03:18:05.883 に答える