我知道您可以通過簡單地使用JSR286 resourceURL標記並執行AJAX調用來創建可以刷新其內容而無需刷新整個門戶頁面的Portlet。用於inter portlet通信的AJAX可能嗎?
我的問題是,是否有可能在Portlet A中執行AJAX調用,並以某種方式目標並動態更新Portlet B?
這個想法是爲了避免當您通過actionURL或事件進行portlet間的通信時刷新誰的門戶頁面(重新呈現)。
我知道您可以通過簡單地使用JSR286 resourceURL標記並執行AJAX調用來創建可以刷新其內容而無需刷新整個門戶頁面的Portlet。用於inter portlet通信的AJAX可能嗎?
我的問題是,是否有可能在Portlet A中執行AJAX調用,並以某種方式目標並動態更新Portlet B?
這個想法是爲了避免當您通過actionURL或事件進行portlet間的通信時刷新誰的門戶頁面(重新呈現)。
如果Portlet B不需要執行服務器端邏輯,那麼您可以簡單地在客戶端上使用pub/sub並讓Portlet B偵聽Portlet A將發佈的特定事件。
所以流程是:
以這種方式使用pub/sub將portlet相互分離。如果Portlet A不存在,則Portlet B不會中斷。如果Portlet B不存在,則Portlet A不會中斷。
如果Portlet的C提供沿和也是能夠獲取邁德特的,此portlet可以也開始發佈「MyDataUpdated」事件和portlet B就開始讓這些事件了。它獲得免費的新更新!
你可以請提供一些教程或技巧資源,如果你有。謝謝 – Scorpion 2012-02-21 03:57:44
您可以使用jQuery trigger()和bind()方法在portlet之間進行通信。通過這種方法,所有的通信都將在客戶端(瀏覽器)上進行,而無需任何服務器交互
偵聽事件應該這樣做的門戶B:
$(document).bind("myevent", function(event, param) {
// do your work here
alert("message recieved with data " + param);
});
是觸發事件應該做以下的門戶答:
$(document).trigger("myevent", "mydata");
搜索相同...做你找到某種方式? – 2011-09-02 12:30:29