想象一下,用户刚刚将数据发布到您的Web应用程序,并且您希望重新显示当前页面,并显示有关其成功或失败的消息.这变得复杂了.
如果数据有效且用户期望使用html,则您希望发出重定向,以便刷新不会导致重新发布.您希望重定向到引用程序(如果存在)并显示消息.如果他们不期望html,你可以简单地返回200 OK.
如果数据无效并且用户期望html,则您希望重新呈现它们来自的页面,并显示可见错误,以便它们可以重新发布.为此,您必须运行上一个操作,并使其知道错误消息.要确定哪个是上一个操作,也许您将其作为表单中的隐藏参数包含在内.如果他们不期望html,您可以返回适用的4xx客户端错误.
我发现自己做这种愚蠢的舞蹈的次数太多了.所以问题是:
1)你如何抽象整个过程,以便任何形式的帖子可以利用它?
2)在您喜欢的Web框架中实现这一目标的最可维护或最不重复的方法是什么?
3)您是否有任何改变这整个过程会使其变得更简单?
想法1:永远不要在帖子上呈现,始终重定向.将请求中的错误数据填入会话中一段时间,然后清除它,就像成功消息一样.这样,有效和无效的帖子可以用同样的方式处理.
想法2:不要做任何正常的HTTP帖子.只使用ajax.现在您根本不必担心渲染或重定向.这只有在你已经拥有ajax-heavy的应用程序时才有用.
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |