AJAX 가 구동 하 는 단일 페이지 응용 프로그램 - pub / sub
1741 단어 Ajax
우선 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
원생 Ajax와 jQuery Ajax의 차이점 예시 분석선언: 이번에 소개한 것은 aax와 백그라운드를 이용하여 데이터 교환을 하는 작은 예이기 때문에 demo는 서버를 통해 열어야 합니다.서버 환경은 구축하기 매우 좋다. 인터넷에서wamp나xampp를 다운로드하여 한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.