пост / Перенаправление / получить - PullRequest
2 голосов
/ 16 декабря 2009

При создании веб-системы ввода данных значительный интерес вызывает тот факт, что вы добавляете дополнительный запрос к серверу на страницу при принятии решения о том, использовать или нет дизайн post / redirect / get?

Ответы [ 5 ]

4 голосов
/ 16 декабря 2009

Да, но не просто по соображениям производительности.

Если у вас есть балансировка нагрузки и репликация базы данных, вы должны убедиться, что GET после POST действительно увидит опубликованные данные, поэтому вам нужно настроить балансировщик нагрузки для перенаправления пользователей на ваш «главный» веб-сайт или точный тот же компьютер, который получил POST (в зависимости от того, как вы реализовали хранилище).

Один запрос не является проблемой, тем более что альтернатива дает довольно плохой пользовательский опыт и может привести к еще большему количеству лишних запросов, чем простое перенаправление.

1 голос
/ 16 декабря 2009

Если я понимаю ваш вопрос (и я не совсем уверен, что понимаю), то, безусловно, неплохо будет выполнить перенаправление после публикации, даже если вы показываете им ту же страницу с обновленной информацией.

Выполняя перенаправление, вы разрываете связь между просматриваемой страницей и POST, вызвавшим изменение. Пользователь может добавить в закладки и / или обновить страницу без всплывающего окна с вопросом «Хотите ли вы отправить данные?»

0 голосов
/ 16 декабря 2009

Протестируйте его, выполнив некоторые тесты производительности, и вы сможете увидеть, будет ли это проблемой в вашем конкретном случае. См. эту статью для получения дополнительной информации.

0 голосов
/ 16 декабря 2009

Я думаю, что удобство использования, которое это предлагает, перевешивает небольшой удар по производительности.

0 голосов
/ 16 декабря 2009

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

...