我不确定PRG模式在我的情况下是否是正确的选择。在我介绍我的案例之前,PRG代表Post / Redirect / Get,你可以在这里阅读: Wiki-article
我有一个搜索页面,搜索是通过POST请求完成的(并且有很多参数)。您通常会搜索订单,并且可以搜索地址,日期,人员等。让我们说你做了一个搜索,然后打开一个订单。现在,如果你回去,你的客户会问你一个恼人的弹出窗口:“你想用其参数重新发送帖子请求吗?” (或类似的东西)。
弹出窗口很烦人,我不认为我的客户想拥有它:)
我在想,也许最好将帖子参数存储在会话中,提供一个链接(因此你必须使用该链接,并且不能点击你的客户端中的“返回”)这会产生一个新的帖子请求存储在会话中的那些参数,并没有恼人的弹出窗口......
然后我用Google搜索并发现PRG模式,这似乎很复杂,需要一些额外的编码。我对整个想法的关注,为什么不只是使整个搜索使用GET而不是POST。
所以我的这个问题/问题是:
谢谢!
答案 0 :(得分:1)
如果您希望共享生成的URI,和/或尽可能简洁 - 请使用PRG。如果您更关心性能,轻松阅读代码和开箱即用的解决方案 - 请使用GET。
谷歌以GET为例,结果却是一个非常丑陋的URI - 但它很有效,而且很快。
如果您使用SESSION,则会占用不必要的空间来保存它,并且您无法链接到结果,因为URI不再代表页面的阶段,这是一件坏事。我会改用PRG。
答案 1 :(得分:1)
我应该使用POST还是GET进行搜索
绝对是GET。
PRG模式在这里不适用。