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をアプリケーションで使用できる場所を確認してください!