JSF одновременных вызовов AJAX - PullRequest
8 голосов
/ 27 октября 2011

Возможно ли с помощью JSF выполнять вызовы ajax, которые будут выполняться одновременно (не дожидаясь завершения предыдущих вызовов перед началом нового)?

Ответы [ 2 ]

11 голосов
/ 27 октября 2011

Нет, они явно поставлены в очередь по спецификации, без каких-либо исключений. См. Главу 13.3.2 спецификации JSF 2 :

13.3.2 Очередь запросов Ajax

Все запросы Ajax должны быть помещены в очередь запросов на стороне клиента, прежде чем они будут отправлены в сервер для обеспечения обработки запросов Ajax в порядке их отправки. Запрос, который ожидал в очереди самый длинный следующий запрос будет отправлен. После отправки запроса функция обратного вызова Ajax-запроса должна удалить запрос из очереди (также известной как снятие очереди). Если запрос выполнен успешно, он должен быть удален из очереди. Если произошла ошибка, клиент должен быть уведомлен, но запрос все равно должен быть удален из очереди, поэтому следующий запрос можно отправить. Следующий запрос (самый старый запрос в очереди) должен быть отправлен. Обратитесь к jsf.ajax.request Дополнительная документация по JavaScript для очереди запросов Ajax.

Это сделано для того, чтобы обеспечить безопасность потоков, в том числе для видимых компонентов, на стороне сервера.

3 голосов
/ 14 августа 2013

Во избежание проблем с так называемым состоянием просмотра страницы или некоторыми формами запросы AJAX сериализуются.

JSF-Extensions (https://www.intersult.com/wiki/page/JSF%20Ext) дает вамвозможность распараллеливать запросы AJAX. Просто установите для переменной JavaScript jsf.ajaxQueue значение, отличное от значения по умолчанию, равного 1. Но если вы не заблокируете дубликаты запросов вручную из одной формы или из одного и того же региона, вы получите ошибки.

Вот как вы активируете параллельные запросы:

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

Например, вы можете распараллелить рендеринг на сервере страницы с помощью,Большинству приложений не потребуются параллельные запросы, потому что они работают хорошо при строгой сериализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...