почему синхронный RPC плох

#java #rpc

#java #rpc

Вопрос:

Читая о Google webtool kit, наткнулся на заявление о том, что «синхронные RPC плохие». Есть ли причина, почему они есть? Одна из веских причин, о которых я мог подумать, заключается в том, что на реакцию конечного пользователя может повлиять любая задержка на удаленном сервере или из-за проблем с сетью.

Кто-нибудь может сказать, каковы точные причины?

Заранее благодарю вас всех.

Ответ №1:

Я предполагаю, что GWT говорит о синхронном RPC из кода javascript, запущенного в браузере, на сервер. И это действительно плохо, потому что JavaScript является однопоточным, и выполнение длительного синхронного вызова RPC из потока JavaScript делает страницу браузера не реагирующей: графический интерфейс зависает до завершения вызова RPC.

Вот почему AJAX по умолчанию асинхронный: он позволяет выполнять асинхронные запросы к серверу, что позволяет браузеру реагировать. Когда возвращается ответ, вызывается метод обратного вызова для обработки результата.

Комментарии:

1. итак, синхронные RPC плохи только в javascript?

2. синхронный RPC плох, когда он имеет нежелательные эффекты. Если вы сделаете это внутри потока отправки событий графического интерфейса swing, это будет иметь тот же нежелательный эффект, что и в JavaScript.