Как избежать медленного потока Post-Redirect-Get (PRG) при обновлении данных?Javascript

Форум по Javascript
Ответить
Anonymous
 Как избежать медленного потока Post-Redirect-Get (PRG) при обновлении данных?

Сообщение Anonymous »

В моем приложении Nextjs есть две страницы:

[*]

Код: Выделить всё

/entry-detail
— пользователь редактирует одну запись и нажимает «Сохранить».

[*]

Код: Выделить всё

/entry-list
— показывает список всех записей.


Когда пользователь сохраняет данные из /entry-detail, я хочу выполнить обе эти операции атомарно в одном HTTP-запросе:
  • Обновить объект записи в базе данных
  • Перейдите к /entry-list и отобразите обновленный список записей
В простом приложении React + Express я бы сделал это:
  • Код: Выделить всё

    POST /api/update-entry
    (сервер обновляет базу данных) — сервер возвращает полный обновленный список записей
  • Поместите этот список в хранилище записей на стороне клиента (Context/Redux/Zustand)
  • Код: Выделить всё

    router.push('/entry-list')
  • Код: Выделить всё

    /entry-list
    отображает записи из хранилища (без дополнительных HTTP-запросов)
Это обеспечивает желаемое поведение в одном HTTP-запросе (один круговой проход), избегая второго запроса из /entry-list и улучшая TTFB/UX.
Вопрос
Что такое идиоматический способ добиться того же с Next.js? Существует ли рекомендуемый шаблон (маршрут API, действие сервера App Router и т. д.), позволяющий:
  • обновить запись, вернуть обновленный список в том же ответе и
  • перейти к /entry-list и выполнить обработку из возвращенного списка — без выполнения второго HTTP-запроса?


Подробнее здесь: https://stackoverflow.com/questions/797 ... ating-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»