JSF одночасне дзвінок ajax

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

8

2 Відповіді

Ні, вони явно перебувають у черзі за специфікацією, без будь-яких винятків. Див. Розділ 13.3.2 специфікації JSF 2 .

13.3.2 Ajax Request Queue

     

Усі запити Ajax повинні бути поміщені в чергу запитів клієнта перед їх надсиланням на адресу   сервер, щоб забезпечити обробку запитів Ajax у порядку їх надсилання. Запит, який очікував в черзі   Найдовшим є наступний запит, який потрібно надіслати. Після надсилання запиту, функція зворотного виклику Ajax повинна видалити запит   з черги (також відома як dequeuing). Якщо запит виконано успішно, його потрібно видалити з черги. Якщо   виникла помилка, клієнт повинен бути сповіщений, але цей запит все-таки повинен бути вилучений з черги таким чином, щоб наступний запит   можна відправити. Наступний запит (найстаріший запит у черзі) повинен бути відправлений. Зверніться до jsf.ajax.request   JavaScript для більш детальної інформації про чергу запиту Ajax.

Це робиться таким чином, щоб забезпечити захист потоку серед інших, видимих ​​бобів на стороні сервера.

11
додано
Як RichFaces, так і MyFaces підтримують управління чергою запиту Ajax ( у RichFaces, використовуючи jsf.js у MyFaces). Це може вам допомогти.
додано Автор sleske, джерело
Дякую. Чи можливо з якихось JavaScript використовувати, щоб отримати доступ до цієї черги та знайти шлях у цьому? Я хотів би, щоб деякі події відразу ж генерували запит ajax? Якщо є спосіб видалити з черги та/або скасувати виконуваний запит, це працює для мене.
додано Автор kgautron, джерело
Не через стандартний API. Принаймні, в загальнодоступному API JS немає нічого: javaserverfaces .java.net/nonav/docs/2.0/jsdocs/symbols/& hellip; Або виправте ваш найбільший вузький рівень продуктивності в обробці запитів/відповідей ajax, або просто не надсилайте ajax-запити, які часто, або винаходити JSF Ajax API
додано Автор BalusC, джерело

Щоб запобігти проблемам з так званим статусом перегляду сторінки або деякими формами, запити AJAX серіалізуються.

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.

Ось як ви активуєте паралельні запити:

<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
додано
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram