10

Js コードでは、2 つの js オブジェクト (1 つは UI の処理 (例: フォーム)、もう 1 つはサーバーへのリクエストの送信) です。

カスタム イベントまたは通常の関数呼び出しを使用して、これらのコンポーネント間で対話するより良い方法は何でしょうか。

例えば。

  clickForm = function(){
      validateForm();
      $(document).trigger("submitForm",{"userData":userData});//Event submitForm listened by formManager submitForm method.
  }

また

clickForm = function(){
     validateForm();
     formManager.submitForm(userData);
  }

clickFormメソッドは、HTML コードの UI インタラクションの管理を担当する UI コンポーネントの一部です。この関数は通常、送信ボタンがクリックされたときに呼び出されます。

submitFormメソッドは、サーバーにリクエストを送信し、レスポンスを解析し、結果を UI コンポーネントに送信することを担当するコア オブジェクトの一部です。

これら 2 つの方法のどちらがより適切な対話方法でしょうか。助言がありますか?

4

1 に答える 1

10

「より良い」はトリッキーな概念です。:-)

イベントを使用すると、オブジェクトがより緩やかに結合されます。これは、通常は良いことと考えられており、2 つのオブジェクトが連携するだけでなく、さらに先に進む可能性が考慮されます (たとえば、複数のサブスクライバーがイベントに参加し、逆に 1 つのオブジェクトがサブスクライブする可能性があります)。 2 つのソースのイベント)。

イベント メカニズムにはより多くのオーバーヘッドがかかりますが、これはほとんどの場合 (フォームを送信するときはもちろん問題ではありません) は問題になりませんが、一部のケース (1 秒間に何千回も発生するもの) では問題になる可能性があります。イベントメカニズム、読み取りとデバッグが少し難しい場合があります。

于 2012-06-26T09:14:57.943 に答える