パブ/サブJavaScriptオブジェクト

David WalshによるPub / Sub JavaScriptオブジェクトの翻訳



AJAX Webサイトを作成するには、アプリケーションレベルでのイベント委任履歴管理、 pub / sub通信の3つのテクニックがあります。 私は3つのテクニックすべてを使用していますが、最も簡単なものを共有したいと思います。私のWebサイトで使用している小さなpub / subモジュールです。



pub / subが何であるかわからない場合、一番下の行はトピックに投稿しているということであり、誰でも購読できます。 これはラジオの仕組みに似ています:ラジオ局は放送(公開)し、誰もが聞く(購読する)ことができます。 これは、モジュール式Webアプリケーションの優れたアプローチです。 特定のオブジェクトに縛られることなく、グローバルなコミュニケーションの方法です。



Javascript



モジュール自体は非常に小さいですが、非常に便利です。

var events = (function(){ var topics = {}; return { subscribe: function(topic, listener) { //   topic,     if(!topics[topic]) topics[topic] = { queue: [] }; //  listener   var index = topics[topic].queue.push(listener) -1; //     return { remove: function() { delete topics[topic].queue[index]; } }; }, publish: function(topic, info) { //       ,    if(!topics[topic] || !topics[topic].queue.length) return; //       var items = topics[topic].queue; items.forEach(function(item) { item(info || {}); }); } }; })();
      
      





次のトピックで公開します。

 events.publish('/page/load', { url: '/some/url/path' //   });
      
      





...トピックをサブスクライブして、イベント通知を受信します。

 var subscription = events.subscribe('/page/load', function(obj) { //  -,    }); // ...      ... subscription.remove();
      
      





私は自分のWebサイトでpub / subを宗教的に慎重に使用していますが、このオブジェクトは非常に良い結果をもたらしました。 AJAXを介してページを読み込むためのテーマと、このイベントによってトリガーされるいくつかのサブスクリプション(広告、コメント、ソーシャルアイコンなどの再描画)があります。 pub / subをアプリケーションで使用できる場所を確認してください!



All Articles