Есть ли разница для веб-браузера, когда серверная часть использует webflux или простой контроллер отдыха?

Предположим, у нас есть 2 сервиса отдыха:

// a rest controller
@GetMapping
private List<Employee> getAllEmployees() {
    return employeeRepository.findAllEmployees();
}

// другой контроллер

@GetMapping
private Flux<Employee> getAllEmployees() {
    return employeeRepository.findAllEmployees(); // suppose reactive db driver here
}

Есть ли разница между этим кодом для клиентского веб-браузера?

1 ответ

Решение

Обычный контроллер отдыха: предположим, что сервер вернет около 10000 записей. В этом случае сервер ожидает, пока база данных вернет все данные, и эти данные будут отправлены в качестве ответа. Таким образом, вы получаете весь ответ за один раз, браузер будет постоянно загружаться с пустой страницей, и это плохой опыт в эту современную эпоху.

Реактивный контроллер: в реактивном контроллере webflux spring используется концепция противодавления. В противодавлении это открытое соединение между сервером и базой данных, поэтому все полученные записи будут постоянно отправляться в качестве ответа. Следовательно, нет пустого экрана и улучшено взаимодействие с пользователем.

Примечание: соединение между браузером останется неизменным до тех пор, пока все данные не будут загружены в браузер.

Другие вопросы по тегам