中午·范德·丝绸 - HTMX 和仆人:在 HTMX 中对 HTTP 错误的无缝且强大的处理

这是一篇关于 HTMX 和 Haskell 的博客文章,作者在应聘过程中撰写。主要内容如下:

  • 问题:构建动态 UI 时调用端点,需处理端点失败或返回内容渲染的情况,常规代码处理繁琐,想探究 HTMX 在这方面的表现及注意事项。
  • 解决方案:以上传图片并转换格式为例,HTMX 可轻松处理无错误的情况,通过定义表单和 HTMX 属性来控制 DOM 变化。服务器端在/upload路由返回 HTML 元素,如<img src="${newPath}" />。若返回非 200 状态码,如 500,HTMX 不会执行后续步骤,可使用response-targets扩展来处理错误,在index.html中添加相关脚本和属性,如hx-ext="response-targets"hx-target-error="#result"等,实现错误渲染。
  • 讨论:使用 HTMX 处理 API 的 HTTP 错误很方便,可通过[response-targets]处理特定或所有错误并在页面中直接渲染内容。还提到outerHTMLinnerHTML的区别及在 HTMX 文档中的重复行为,需根据喜好选择。
  • 额外内容:HTMX 是前端技术,服务器可用不同语言,在Servant生态系统中,可定义/upload端点返回 HTML,如data Routes mode = Routes { upload :: mode :- "upload" :> MultipartForm Mem (MultipartData Mem) :> Post '[HTML] Html,并在uploadAndConvert函数中处理文件上传和转换,确保返回 HTML 且错误内容有适当 HTML 包装。
阅读 8
0 条评论