【发布时间】:2011-04-08 11:12:35
【问题描述】:
在我们的网络应用程序中,我允许用户使用简单的单页表单(类似于 SO 中的个人资料)编辑他们的个人资料。
我正在尝试决定在这种情况下是否使用“发布/重定向/获取”模式。
一方面,更新后,用户可以刷新个人资料页面(或使用后退按钮导航到该页面),而不会出现任何烦人的浏览器消息,询问他们是否希望重新提交数据。
另一方面,此模式需要来自浏览器的第二次请求,并且还需要服务器获取配置文件实体两次(一次更新它,然后再次在重定向时显示它)。
如果我们实现某种类型的数据库复制,还有一个问题是第二个请求可能会转到不同的服务器,该服务器可能没有收到对配置文件实体的更新。这个问题可以通过 Memcache 或类似的策略来解决,但它会增加更多的复杂性。
“发布/重定向/获取”也使显示确认消息(“您的配置文件更改已保存”)变得复杂,因为我们现在需要存储一个标志,提示消息显示在第二个要求。理想情况下,我们希望让我们的应用程序尽可能保持 RESTful。
解决这个问题的最佳方法是什么?还有其他我遗漏的注意事项吗?
【问题讨论】:
标签: webforms post-redirect-get