У меня был опыт работы со стойками, и я немного поэкспериментировал с плиткой. Я знаю, что в макете каждая плитка представляет собой отдельную страницу jsp. Предположим, я нажал кнопку на каждой из четырех плиток, и каждая плитка (косвенно) вызывала разные веб-службы. Будут ли плитки обновляться асинхронно, поскольку результаты приходят в разное время?
Плитки Struts — каждая плитка асинхронна?
Ответы (2)
Тайлы — это просто фрагменты одной html-страницы. Нет понятия ajax, если вы не добавите его вручную. Для этого: Нажатие 4 кнопок на одной странице равноценно нажатию 4 ссылок на любой HTML-странице. Браузер отправит соответствующий запрос на сервер. Когда сервер отвечает очень быстро, вы даже не успеете нажать вторую кнопку. Когда он достаточно медленный, первый запрос (от браузера к серверу) будет отменен, а второй (третий, четвертый) будет отправлен (и отменен при нажатии следующей кнопки).
Остальное зависит от реализации бэкенда: в какой-то момент сервер заметит, что не может отправить данные для 3 из 4 запросов. Что будет обслуживаться/отображаться в последнем (открытом) ответе, также зависит от вашей реализации. Если есть какое-то состояние на стороне сервера, содержащее ответ веб-службы, могут появиться все 4 результата. Если одна веб-служба еще не вернулась, могут появиться только 3 результата и одна старая плитка.
Я думаю, это будет зависеть от кода в фоновом режиме. Вы говорите, что тайлы косвенно вызывали веб-сервисы. Я бы подумал, что он будет обновляться асинхронно, если вы не указали в своем коде, чтобы он этого не делал. Скажем, вы нажимаете кнопку 1, а затем кнопку 2. Действие 1 возвращается, и ваш код говорит, что экран необходимо обновить, и страница обновится. Как только действие 2 вернется, ваш код снова обновит экран. Я считаю, что так это работает, но никогда не пробовал, я не могу быть уверен.
Почему бы просто не собрать двухуровневую тестовую страницу с кнопками и не попробовать ее. Это должно дать вам окончательный ответ.