2

你好呀!

假设我在 Haskell 中有一个巨大的多节点树,其中每个节点都包含每个页面的 HTML 内容。

使用 Yesod,用户将使用 URL /myPage 和 Handler 访问网页

getMyPageR :: Handler Html 

将被调用。

我想要的是当前树节点要生成的页面的 HTML 内容。

在树中,我们从根开始,提取当前节点的 HTML 内容并将其显示为当前页面。在每个页面中,有多个按钮代表用户的选择。当前节点的每个子节点有一个按钮。然后,根据用户的选择,树将向下一层到用户选择的特定子级,并出现新的 HTML 内容。然后用户可以做出另一个选择,树再次向下一层并出现新的 HTML 内容。等等等等。

本质上,用户的每一个选择都会使树下降一层,直到我们到达叶节点。

我正在考虑在 Haskell 中使用 Zippers 来实现这一点,这样我就可以轻松地穿过树并保留我旅行的地方的面包屑。

在 Yesod 中实现这个的一个好的解决方案是什么?我希望这个很好的解决方案包括使用拉链。

一种解决方案可能是在同一页面上使用 POST/Redirect/GET 通过会话发送树,但如果树太大,它将无法工作。

如果还不够清楚,请随时问我澄清我的问题。

提前致谢。

4

0 回答 0