你好呀!
假设我在 Haskell 中有一个巨大的多节点树,其中每个节点都包含每个页面的 HTML 内容。
使用 Yesod,用户将使用 URL /myPage 和 Handler 访问网页
getMyPageR :: Handler Html
将被调用。
我想要的是当前树节点要生成的页面的 HTML 内容。
在树中,我们从根开始,提取当前节点的 HTML 内容并将其显示为当前页面。在每个页面中,有多个按钮代表用户的选择。当前节点的每个子节点有一个按钮。然后,根据用户的选择,树将向下一层到用户选择的特定子级,并出现新的 HTML 内容。然后用户可以做出另一个选择,树再次向下一层并出现新的 HTML 内容。等等等等。
本质上,用户的每一个选择都会使树下降一层,直到我们到达叶节点。
我正在考虑在 Haskell 中使用 Zippers 来实现这一点,这样我就可以轻松地穿过树并保留我旅行的地方的面包屑。
在 Yesod 中实现这个的一个好的解决方案是什么?我希望这个很好的解决方案包括使用拉链。
一种解决方案可能是在同一页面上使用 POST/Redirect/GET 通过会话发送树,但如果树太大,它将无法工作。
如果还不够清楚,请随时问我澄清我的问题。
提前致谢。