JSF simultaneous ajax calls

后端 未结 2 440
故里飘歌
故里飘歌 2021-01-05 04:16

Is it possible with JSF to make ajax calls that will execute simultaneously (not waiting for previous calls to finish before starting a new one)?

相关标签:
2条回答
  • 2021-01-05 05:04

    To prevent problems with the so called View-State of the page or some forms, AJAX requests are serialized.

    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.

    This is how you activate parallel requests:

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

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

    0 讨论(0)
  • 2021-01-05 05:11

    No, they are explicitly queued by specification, without any exception. See chapter 13.3.2 of the JSF 2 specification:

    13.3.2 Ajax Request Queueing

    All Ajax requests must be put into a client side request queue before they are sent to the server to ensure Ajax requests are processed in the order they are sent. The request that has been waiting in the queue the longest is the next request to be sent. After a request is sent, the Ajax request callback function must remove the request from the queue (also known as dequeuing). If the request completed successfully, it must be removed from the queue. If there was an error, the client must be notified, but the request must still be removed from the queue so the next request can be sent. The next request (the oldest request in the queue) must be sent. Refer to the jsf.ajax.request JavaScript documentation for more specifics about the Ajax request queue.

    This is done so to ensure thread safety of among others the view scoped beans in the server side.

    0 讨论(0)
提交回复
热议问题