Foren

Stressing Ajax Request Javascript Error

Pierluca Marino, geändert vor 9 Jahren.

Stressing Ajax Request Javascript Error

Junior Member Beiträge: 27 Beitrittsdatum: 15.11.10 Neueste Beiträge
In our portal, we developed many Primefaces portlets running in a Liferay enviroment. Many of this portlet are ajaxable and async loaded.

Now everything work fine, but if a user launch many Ajax requests, clicking on various point in the page, and he doesn't wait for response before another event is submitted, it cause javascript error (on Liferay js libraries and Primefaces js library), es:

TypeError: b is undefined on primefaces.js
TypeError: listContainer is null on js/liferay/menu.js


This javascript errors causes that page is blocked, no more event can be launched, only a complete page reload make portal reusable.

I would appreciate any help.

We use: PirmeFaces 3.5.23, mojarra 2.1.29 Liferay 6.1.3ga3 and bridge 3.1.4ga5
Ricardo Candeias, geändert vor 9 Jahren.

RE: Stressing Ajax Request Javascript Error

New Member Beiträge: 3 Beitrittsdatum: 06.10.14 Neueste Beiträge
Hi,

Have you considered making each Ajax request block the page with a p:blockui? May not be the most elegant solution but it would prevent multiple ajax requests from an impatient user.
thumbnail
Juan Gonzalez, geändert vor 9 Jahren.

RE: Stressing Ajax Request Javascript Error

Liferay Legend Beiträge: 3089 Beitrittsdatum: 28.10.08 Neueste Beiträge
Hi Pierluca,

it is difficult to guess at a first glance why those errors are showing. Usually, you should have under control all your html elements whose DOM is going to be changed after AJAX requests, and be sure that new AJAX requests aren't going to be dependant on those previous requests.

Did you consider blocking the UI after a new request is made (very easy to implement using Primefaces' Ajax Status and modal panel).

Maybe you can create a simple portlet where you can reproduce this behaviour and post here too...
Pierluca Marino, geändert vor 9 Jahren.

RE: Stressing Ajax Request Javascript Error

Junior Member Beiträge: 27 Beitrittsdatum: 15.11.10 Neueste Beiträge
Tanks for your responses.

Yes, we have a centralized <p:ajaxStatus tag. for many of user interactions, but in some situation, client doens't like that ui is full blocked, so we use global=false. In a typical situation user click on menu itme and central page in the portal load an ajaxable portlet with a render-weight=0, so portlet are loaded asyncronusly with other elment on the page.If user doens't wait full page loaded and click more and more, javascript errors happen.
Primefaces ajax status and primeface block ui are mutually exclusive, so we decided to use ajax status.
thumbnail
Juan Gonzalez, geändert vor 9 Jahren.

RE: Stressing Ajax Request Javascript Error

Liferay Legend Beiträge: 3089 Beitrittsdatum: 28.10.08 Neueste Beiträge
Hi again,

please, can you create some tests portlets to reproduce? That would makes a lot easier to check the problem, if any.