如果您提交 HTML 片段,则需要 Post/Redirect/Get?

gue*_*tli 5 post-redirect-get htmx

过去我使用Post/Redirect/Get模式:

  • html已通过POST提交到服务器
  • 服务器处理数据。
  • 如果一切正常,服务器将响应 http 302(重定向
  • 客户端将页面重定向到新位置。

如果您通过htmx提交 html 片段,还需要这样做吗?

小智 3

总的来说,,您不需要实现 PRG 模式。

由于 htmx 使用 AJAX 进行大多数交互,因此浏览器历史记录中没有请求,并且点击刷新不会重新提交 POST(或 DELETE 或其他)。

也就是说,htmx 尝试与 PRG 模式兼容,并在发生重定向时尝试通过检测以下内容来更新 URL:

https://github.com/bigskysoftware/htmx/blob/1d4c79490e491813ffb780354ec5df6d080b1e09/src/htmx.js#L2146

https://github.com/bigskysoftware/htmx/blob/1d4c79490e491813ffb780354ec5df6d080b1e09/src/htmx.js#L1851

如果您执行内联编辑之类的操作:

https://htmx.org/examples/click-to-edit/

这一点在很大程度上变得毫无意义,因为您可以将编辑 UI 与视图 URL 放在同一 URL 中。