We are using Liferay's Liferay.on & Liferay.fire javascript apis to get
client side eventing without full page reload.
IceFaces 2.0.2 with Portlet Faces bridge are the frameworks used for all our
portlets. For this use case, we have three portlets (Portlet A, Portlet B,
Portlet C)
bundled in three different war files.
Use case
1. The Portlet A fires an event through Liferay.fire(event,data) javascript
api.
2. Portlet B receives the event using
Liferay.on(eventName,eventCallbackFunction,Liferay.Navigation) function.
3. Portlet C receives the event using
Liferay.on(eventName,eventCallbackFunction,Liferay.Navigation) function.
4. Both Portlet B & Portlet C try to make ajax calls to server side to update
their data after receiving the event(in pt. 2 & 3).
5. Portlet B and Portlet C uses IceFaces/Jsf's javascript api (
jsf.ajax.request() ) to send the request to server. (Also tried with
<f:ajax>)
6. But it seems the ajax requests (partial submit requests) are sent in
sequential manner to server. That means, the Portlet B's ajax request is sent
and the system waits for the response. Once the Portlet B's request is
finised, Portlet C's request is sent to the server. Looks like some kind of
sequence is maintaining in the jsf.ajax javascript layer.
7. But as the Portlet B and Portlet C are in different war files, they should
be able to send ajax requests to server concurrently.
8. Also as the Portlet B is the slowest portlet in the page, the other
portlets has to wait for the Portlet B to finish.
--
[Message sent by forum member 'erctheanda']
View Post: http://forums.java.net/node/845180