Плитки Struts — каждая плитка асинхронна?

У меня был опыт работы со стойками, и я немного поэкспериментировал с плиткой. Я знаю, что в макете каждая плитка представляет собой отдельную страницу jsp. Предположим, я нажал кнопку на каждой из четырех плиток, и каждая плитка (косвенно) вызывала разные веб-службы. Будут ли плитки обновляться асинхронно, поскольку результаты приходят в разное время?


person Community    schedule 12.11.2008    source источник


Ответы (2)


Тайлы — это просто фрагменты одной html-страницы. Нет понятия ajax, если вы не добавите его вручную. Для этого: Нажатие 4 кнопок на одной странице равноценно нажатию 4 ссылок на любой HTML-странице. Браузер отправит соответствующий запрос на сервер. Когда сервер отвечает очень быстро, вы даже не успеете нажать вторую кнопку. Когда он достаточно медленный, первый запрос (от браузера к серверу) будет отменен, а второй (третий, четвертый) будет отправлен (и отменен при нажатии следующей кнопки).

Остальное зависит от реализации бэкенда: в какой-то момент сервер заметит, что не может отправить данные для 3 из 4 запросов. Что будет обслуживаться/отображаться в последнем (открытом) ответе, также зависит от вашей реализации. Если есть какое-то состояние на стороне сервера, содержащее ответ веб-службы, могут появиться все 4 результата. Если одна веб-служба еще не вернулась, могут появиться только 3 результата и одна старая плитка.

person Olaf Kock    schedule 22.11.2008

Я думаю, это будет зависеть от кода в фоновом режиме. Вы говорите, что тайлы косвенно вызывали веб-сервисы. Я бы подумал, что он будет обновляться асинхронно, если вы не указали в своем коде, чтобы он этого не делал. Скажем, вы нажимаете кнопку 1, а затем кнопку 2. Действие 1 возвращается, и ваш код говорит, что экран необходимо обновить, и страница обновится. Как только действие 2 вернется, ваш код снова обновит экран. Я считаю, что так это работает, но никогда не пробовал, я не могу быть уверен.

Почему бы просто не собрать двухуровневую тестовую страницу с кнопками и не попробовать ее. Это должно дать вам окончательный ответ.

person BoboTheCodeMonkey    schedule 12.11.2008