JSF gelijktijdige ajax-oproepen

Is het mogelijk om met JSF ajax-gesprekken te voeren die tegelijkertijd worden uitgevoerd (niet wachten tot eerdere gesprekken zijn voltooid voordat u een nieuwe start)?

8

2 antwoord

Nee, ze worden expliciet in de wachtrij geplaatst door specificaties, zonder enige uitzondering. Zie hoofdstuk 13.3.2 van de JSF 2-specificatie :

13.3.2 Ajax wachtrij aanvragen

     

Alle Ajax-verzoeken moeten in een wachtrij voor client-side-aanvragen worden geplaatst voordat ze naar de server worden verzonden   server om ervoor te zorgen dat Ajax-verzoeken worden verwerkt in de volgorde waarin ze zijn verzonden. Het verzoek dat in de wachtrij in de wachtrij stond   het langste is het volgende verzoek dat moet worden verzonden. Nadat een verzoek is verzonden, moet de callback-functie van Ajax worden verwijderd   uit de wachtrij (ook bekend als uitscheiden). Als het verzoek met succes is voltooid, moet het uit de wachtrij worden verwijderd. Als   er is een fout opgetreden, de client moet op de hoogte worden gebracht, maar de aanvraag moet nog steeds uit de wachtrij worden verwijderd, dus het volgende verzoek   kan verstuurd worden. De volgende aanvraag (het oudste verzoek in de wachtrij) moet worden verzonden. Raadpleeg de jsf.ajax.request   JavaScript-documentatie voor meer informatie over de Ajax-wachtrij.

Dit wordt gedaan om de veiligheid van de thread van onder andere de view scoped beans aan de serverkant te garanderen.

11
toegevoegd
Zowel RichFaces als MyFaces hebben enige ondersteuning voor het beheer van de Ajax-wachtrij ( in RichFaces, met jsf.js in MyFaces). Dit kan je misschien helpen.
toegevoegd de auteur sleske, de bron
Bedankt. Is het mogelijk om met een JavaScript deze wachtrij te openen en een manier te vinden om dit te omzeilen? Ik wil graag dat sommige evenementen onmiddellijk een ajax-verzoek genereren? Als er een manier is om uit de wachtrij te verwijderen en/of het verzoek dat wordt uitgevoerd te annuleren, werkt dat voor mij.
toegevoegd de auteur kgautron, de bron
Niet via de standaard API. Tenminste, er is niets in de openbare JS API: javaserverfaces .java.net/nonav/docs/2.0/jsdocs/symbols/& hellip; Verbeter je grootste bottleneck in ajax request/response handling, of stuur niet vaak ajax-aanvragen, of heruitvouw de JSF Ajax API.
toegevoegd de auteur BalusC, de bron

Om problemen met de zgn. View-State van de pagina of sommige formulieren te voorkomen, worden AJAX-verzoeken geserialiseerd.

JSF-Extensions (https://www.intersult.com/wiki/page/JSF%20Ext) gives you the option to parallelize AJAX requests. Just set the JavaScript variable jsf.ajaxQueue to another value than the default of 1. But if you don't lock out manually duplicate requests from within the same form or rendering of the same region, you will get errors.

Zo activeer je parallelle verzoeken:

<script type="text/javascript">
    if (jsf)
        jsf.ajaxQueue = 2;
</script>

For example you can parallelize the rendering on the server of a page with . Most applications would not need parallel requests, because they run nice when strictly serialized.

3
toegevoegd