动态javascript加载和订阅基于数据的事件



我有一个使用pubnub进行消息传递的javascript客户端。我订阅了这样一个频道:

    pubnub.subscribe({
        channel : chnl,
        message : function(m){
            var msg = $.parseJSON(m);
            processMessage(msg);
        }
    );

我有一堆小部件/组件,目前只由动态加载的HTML组成。现在,processMessage()基本上只是说"如果消息ID是widget1,那么做一堆东西"。我想修改组件文件,以包括处理所有小部件数据的javascript,以及如何注册一个钩子来检测何时PubNub消息带有与小部件匹配的ID。

我该怎么做?

更多信息请参见programmers.stackexchange.com上的问题

您可以保留一个简单的回调映射,并在消息传入时进行查找。

类似:

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

And on message:

pubnub.subscribe({
  channel: chnl,
  message: function(m){
    var msg = $.parseJSON(m);
    processMessage(msg);
  }
);

相关内容

  • 没有找到相关文章

最新更新