AJAX 가 구동 하 는 단일 페이지 응용 프로그램 - pub / sub

1741 단어 Ajax
AJAX 가 구동 하 는 단일 페이지 응용 에 있어 세 가지 가 있 습 니 다. 시간 의뢰, 역사 관리 와 통신 모델 (Pub / Sub) 입 니 다.
우선 Pub / Sub 가 무엇 인지 소개 해 드 리 겠 습 니 다.우 리 는 이 물건 을 방송 이 라 고 부 를 수 있다. 아마도 당신 이 물건 을 발표 하면 다른 사람들 이 모두 받 을 수 있다 는 뜻 일 것 이다.일반적으로 한 페이지 응용 에서 고도 모듈 화 라 고 생각해 보 세 요.그러면 통신 문제 와 관련 될 것 이다. 예전 의 방식 에 따라 우 리 는 특정한 대상 을 성명 할 것 이다. 이 대상 은 모듈 간 의 통신 에 전문 적 으로 사용 된다.Pub / Sub 를 사용 한 후에 모듈 간 의 통신 은 직접적인 통신 이 되 어 구 조 를 선명 하 게 할 수 있다.
PS: 이런 메커니즘 은 angularjs 에서 통합 되 고 angularjs 에서 기능 이 더욱 완전 합 니 다.
아래 의 코드 는 자신의 프로젝트 에 직접 통합 할 수도 있 고 약간 개조 할 수도 있다.
var events = (function(){
  var topics = {};

  return {
    //   
    subscribe: function(topic, listener) {
      //              , topics     
      if(!topics[topic]) topics[topic] = { queue: [] };

      //            
      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) {	
  //        
});

//      remove     
subscription.remove();

표시 에 따라 데 이 터 를 감청 하 다.
via:http://davidwalsh.name/pubsub-javascript

좋은 웹페이지 즐겨찾기