You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.8 KiB
70 lines
1.8 KiB
<html> |
|
<head> |
|
<script type="text/javascript"> |
|
// Dojo configuration |
|
djConfig = { isDebug: true }; |
|
</script> |
|
<script type="text/javascript" src="../../dojo.js"></script> |
|
<script type="text/javascript"> |
|
dojo.require("dojo.event.topic"); |
|
|
|
function Subscriber(displayNode){ |
|
this.displayNode = displayNode; |
|
|
|
this.update = function(message) { |
|
this.displayNode.innerHTML = message; |
|
}; |
|
} |
|
|
|
var clickCount = 0; |
|
|
|
function sendMessage1() { |
|
topic1.sendMessage("Message " + ++clickCount); |
|
} |
|
|
|
function sendMessage2() { |
|
topic2.sendMessage("Message " + ++clickCount); |
|
} |
|
|
|
var subCounter = 0; |
|
function addSubscriber(subName){ |
|
var container = dojo.byId("container"); |
|
var newSub = document.createElement("div"); |
|
newSub.id = "subscriber"+subCounter++; |
|
newSub.innerHTML = newSub.id; |
|
container.appendChild(newSub); |
|
return new Subscriber(newSub); |
|
} |
|
|
|
dojo.addOnLoad(function(){ |
|
topic1 = dojo.event.topic.getTopic("testTopic1"); |
|
topic2 = dojo.event.topic.getTopic("testTopic2"); |
|
|
|
var sub1 = addSubscriber(); |
|
var sub2 = addSubscriber(); |
|
|
|
topic1.subscribe(sub1, "update"); |
|
topic1.subscribe(sub2, "update"); |
|
|
|
topic2.subscribe(sub2, "update"); |
|
}); |
|
</script> |
|
</head> |
|
<body> |
|
Check your javascript log; the scripts were all loaded in the head. |
|
|
|
<div id="container"> |
|
</div> |
|
|
|
<button id="publisher" onclick="sendMessage1();"> |
|
Publish a message on Topic1 |
|
</button> |
|
|
|
<button id="publisher2" onclick="sendMessage2();"> |
|
Publish a message on Topic2 |
|
</button> |
|
|
|
<button onclick="dojo.event.topic.subscribe('testTopic1', addSubscriber(), 'update');"> Add a new subscriber </button> |
|
|
|
</body> |
|
</html>
|
|
|