Могу ли я получить результат асинхронного вызова GWT до отображения страницы? - PullRequest
1 голос
/ 30 июня 2010

У меня есть страница GWT со списком (из хранилища данных). Я понимаю, как получить этот список после загрузки страницы с помощью асинхронного вызова, но я хочу убедиться, что при начальной загрузке страницы в ней есть действительные данные. В противном случае страница загружается большую часть пути, а затем заполняется список, что приводит к прерывистой загрузке, и пользователю требуется больше времени для ожидания загрузки страницы.

Итак, как я могу получить данные с сервера на страницу при загрузке? Есть ли способ вызвать службу на стороне сервера из конструктора моего класса UIBinder? Я не могу вызвать фактическую реализацию сервиса, так как код на стороне клиента не может ссылаться на код на стороне сервера, верно?

Конечно, это не может быть уникальной потребностью, но я не могу найти какие-либо советы в Google (хотя я не могу искать правильные термины).

Ответы [ 2 ]

1 голос
/ 30 июня 2010

То, что я сделал в своем собственном проекте для решения той же проблемы, - это использование JSP для встраивания нужных мне данных в источник страницы в виде объектов javascript. Таким образом, данные уже существуют к тому времени, когда вызывается onModuleLoad (). У Google есть немного документации о том, как читать объекты javascript в ваш код Java.

Очевидно, вам также нужно немного узнать о jsp .

0 голосов
/ 30 июня 2010

Вы можете скрыть весь контент своей страницы, пока данные не будут загружены, чтобы избежать прерывистого эффекта.

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

...