#java #rpc
#java #rpc
Вопрос:
Читая о Google webtool kit, наткнулся на заявление о том, что «синхронные RPC плохие». Есть ли причина, почему они есть? Одна из веских причин, о которых я мог подумать, заключается в том, что на реакцию конечного пользователя может повлиять любая задержка на удаленном сервере или из-за проблем с сетью.
Кто-нибудь может сказать, каковы точные причины?
Заранее благодарю вас всех.
Ответ №1:
Я предполагаю, что GWT говорит о синхронном RPC из кода javascript, запущенного в браузере, на сервер. И это действительно плохо, потому что JavaScript является однопоточным, и выполнение длительного синхронного вызова RPC из потока JavaScript делает страницу браузера не реагирующей: графический интерфейс зависает до завершения вызова RPC.
Вот почему AJAX по умолчанию асинхронный: он позволяет выполнять асинхронные запросы к серверу, что позволяет браузеру реагировать. Когда возвращается ответ, вызывается метод обратного вызова для обработки результата.
Комментарии:
1. итак, синхронные RPC плохи только в javascript?
2. синхронный RPC плох, когда он имеет нежелательные эффекты. Если вы сделаете это внутри потока отправки событий графического интерфейса swing, это будет иметь тот же нежелательный эффект, что и в JavaScript.