Javascript 用于portlet间通信的AJAX是否可行?

Javascript 用于portlet间通信的AJAX是否可行?,javascript,ajax,portlet,portal,Javascript,Ajax,Portlet,Portal,我知道,只需使用JSR286 resourceURL标记并执行AJAX调用,就可以创建可以刷新其内容而不刷新整个门户页面的portlet 我的问题是,是否可以在Portlet A中进行AJAX调用,并以某种方式以Portlet B为目标并动态更新 这样做的目的是,当您通过actionURL或事件进行portlet间通信时,避免who门户页面刷新(重新呈现)。如果portlet B不需要执行服务器端逻辑,那么您可以简单地在客户端上使用pub/sub,让portlet B监听portlet a将发布

我知道,只需使用JSR286 resourceURL标记并执行AJAX调用,就可以创建可以刷新其内容而不刷新整个门户页面的portlet

我的问题是,是否可以在Portlet A中进行AJAX调用,并以某种方式以Portlet B为目标并动态更新


这样做的目的是,当您通过actionURL或事件进行portlet间通信时,避免who门户页面刷新(重新呈现)。

如果portlet B不需要执行服务器端逻辑,那么您可以简单地在客户端上使用pub/sub,让portlet B监听portlet a将发布的特定事件

因此,流动是:

  • 初始HTML页面被发送到客户端,打开Portlet A和Portlet B
  • 发布/订阅系统在客户机上初始化。也许用类似的方法
  • 客户机上的Portlet B注册了名为“MyDataUpdate”的主题(或您希望为主题指定的任何有意义的名称)
  • 客户机通过XHR触发对Portlet a的ServerSource调用
  • 服务器上的Portlet A为ServerSource调用执行逻辑
  • 服务器上的Portlet A将其响应发送回客户端
  • 客户端上的Portlet A使用ServerSource响应,并使用主题“MyDataUpdate”发布结果
  • 客户端上的Portlet B接收“MyDataUpdate”事件的通知
  • 客户端上的Portlet B可以刷新自身
  • 以这种方式使用pub/sub将portlet彼此解耦。如果Portlet A不存在,Portlet B不会中断。如果Portlet B不存在,Portlet A不会中断

    如果Portlet C出现并且能够获取MyData,那么这个Portlet也可以开始发布“MyDataUpdate”事件,Portlet B也将开始获取这些事件。它免费获得新的更新

    您可以使用jQuery trigger()和bind()方法在portlet之间进行通信。使用这种方法,所有通信都将在客户端(浏览器)上进行,而无需任何服务器交互

    侦听事件的portlet B应该执行以下操作:

    $(document).bind("myevent", function(event, param) {
         // do your work here
         alert("message recieved with data " + param);
    });
    
    触发事件的portlet A应执行以下操作:

    $(document).trigger("myevent", "mydata");
    

    搜索相同的…你有没有找到一些方法?如果你有,请提供一些教程或提示资源。谢谢