gpt4 book ai didi

elixir - 使用 websockets 渲染模板

转载 作者:行者123 更新时间:2023-12-04 05:35:56 24 4
gpt4 key购买 nike

不知道有没有办法在通过websockets添加内容时渲染phoenix模板?如果我想使用 websockets 添加一些复杂的 html 结构作为模板而不在 javascript 代码中复制此结构,该怎么做?

我看到的唯一方法是在 Controller 中生成模板 html,如下所示:

def create(conn, params) do
#some code
Endpoint.broadcast!("user_room:123", "new_comment", %{comment_content: MyApp.PostView.render(conn, "comment.html", comment: comment)})
#some code
end

然后将此生成的内容添加到处理 channel 响应的 javascript 文件中的页面。

我还没有尝试过,所以它甚至可能不起作用,但我想知道是否有更合适的方法来做到这一点?如果一开始就可能呢?

最佳答案

对于这样的任务,您基本上有两种选择:

  1. 在服务器端呈现 HTML 并通过 websockets 发送它,这就是您想要做的
  2. 在客户端渲染 HTML,所以你只需要通过 websockets 发送数据

MyApp.PostView.render(conn, "comment.html", comment: comment)} 如果您想使用 Phoenix 模板,这是处理此问题的完美方式,这是第一种情况如上所述。

不要忘记它返回 {:safe, html} 而不仅仅是 HTML,所以您可能希望使用 render_to_string 通过 websockets 发送它。

处理此问题的第二种方法具有发送较少数据的优点,但您将无法轻松地重用模板,因此这取决于您的要求和应用程序。

关于elixir - 使用 websockets 渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35694016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com