动态 javascript 根据数据加载和订阅事件?
dynamic javascript load and subscribe to event based on data?
我有一个 javascript 客户端使用 pubnub 进行消息传递。我正在订阅这样的频道:
pubnub.subscribe({
channel : chnl,
message : function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);
我有一堆 widgets/components 目前只包含动态加载的 HTML。现在processMessage()
基本上就是说"If the message ID is widget1 then do a bunch of stuff"。我想修改组件文件以包含处理所有小部件数据的 javascript,以及一些如何注册挂钩以检测何时带有与小部件匹配的 ID 的 PubNub 消息。
我该怎么做?
有关详细信息,请参阅 programmers.stackexchange.com 上的 this question。
您可以保留一个简单的回调映射并在收到消息时进行查找。
类似于:
var callbackMap = {};
function registerCallback(id, callback) {
callbackMap[id] = callback;
}
function processMessage(msg) {
callbackMap[msg.id](msg.data);
}
在每个组件中,您将注册:
registerCallback('widget1', function(data) {
//do something for widget1 with data
});
并在留言中:
pubnub.subscribe({
channel: chnl,
message: function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);
我有一个 javascript 客户端使用 pubnub 进行消息传递。我正在订阅这样的频道:
pubnub.subscribe({
channel : chnl,
message : function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);
我有一堆 widgets/components 目前只包含动态加载的 HTML。现在processMessage()
基本上就是说"If the message ID is widget1 then do a bunch of stuff"。我想修改组件文件以包含处理所有小部件数据的 javascript,以及一些如何注册挂钩以检测何时带有与小部件匹配的 ID 的 PubNub 消息。
我该怎么做?
有关详细信息,请参阅 programmers.stackexchange.com 上的 this question。
您可以保留一个简单的回调映射并在收到消息时进行查找。
类似于:
var callbackMap = {};
function registerCallback(id, callback) {
callbackMap[id] = callback;
}
function processMessage(msg) {
callbackMap[msg.id](msg.data);
}
在每个组件中,您将注册:
registerCallback('widget1', function(data) {
//do something for widget1 with data
});
并在留言中:
pubnub.subscribe({
channel: chnl,
message: function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);