Struts плитки - каждая плитка асинхронна? - PullRequest
1 голос
/ 12 ноября 2008

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

Ответы [ 2 ]

4 голосов
/ 22 ноября 2008

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

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

1 голос
/ 12 ноября 2008

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

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

...