【发布时间】:2010-12-27 09:18:41
【问题描述】:
在制作基于 Web 的数据输入系统时,在决定是否使用 post/redirect/get 设计时,是否为每个页面添加额外的服务器请求是一个重要问题?
【问题讨论】:
在制作基于 Web 的数据输入系统时,在决定是否使用 post/redirect/get 设计时,是否为每个页面添加额外的服务器请求是一个重要问题?
【问题讨论】:
请求本身不是问题,尤其是替代方案会带来非常糟糕的用户体验。
但是,当使用具有负载平衡和/或数据库复制的站点时,您需要注意确保 POST 之后的 GET 将看到已发布的数据。
使用负载平衡和缓存时,有时会通过将同一用户引导到同一台计算机的“粘性会话”来解决此问题,因此存储在该计算机上的直写缓存中的数据将是最新的。
使用数据库复制时,POST 之后的 GET 请求可能需要直接从“主”数据库读取,而不是像往常一样从本地“辅助”数据库读取。
【讨论】:
如果我理解您的问题(而且我不完全确定我是否理解),那么在发布后进行重定向绝对是一个不错的设计,即使您向他们显示包含更新信息的同一页面。
通过执行重定向,您正在断开正在查看的页面与导致更改的 POST 之间的连接。用户可以添加书签和/或刷新页面,而不会弹出询问“您要重新发送数据吗?”
【讨论】:
大多数情况下,只有在数据更改时才会发布帖子。网站上最多的流量和 CPU 时间是由查询 (GETS) 而不是更改产生的,所以我认为这些额外的请求并不是很重要。
【讨论】:
我认为它提供的可用性超过了对性能的小幅影响。
【讨论】:
通过执行一些性能基准对其进行测试,您将能够查看在您的特定情况下它是否会成为一个问题。请参阅this article 了解更多信息。
【讨论】: