Engee 文档

高级配置

元标记

您可以通过设置应用程序的元标签来更改浏览器中的标题、标签图标和预览图片。您可以定义自己的布局,也可以像这样编辑默认布局:

meta = Dict(
  "og:title" => "Lorenz Chaotic Attractor",
  "og:description" => "Real-time simulation of a dynamic system.",
  "og:image" => "/preview.jpg")
layout = DEFAULT_LAYOUT(meta = meta)
@page("/", "app.jl.html", layout = layout)

选择传输层:WebSockets 还是 HTTP

默认情况下,Stipple 会尝试使用 WebSockets 在后端和前端之间进行实时数据同步。但在某些情况下,主机可能不支持 WebSockets。在这种情况下,可以将 Stipple 切换为使用普通 HTTP 进行数据同步,并使用 AJAX 进行前端轮询(默认轮询间隔为 1 秒)。通过向`init()` 方法传递`transport` 参数,可将 Stipple 配置为使用 AJAX/HTTP,例如

model = Stipple.init(Name, transport = Genie.WebThreads)

transport 的当前可用选项是`Genie.WebChannels` (默认情况下使用 WebSockets)和`Genie.WebThreads` (使用 HTTP/AJAX)。

由于轮询会产生大量额外请求,因此最好禁用请求自动记录功能。这可以通过`Genie.config.log_requests = false` 来实现。

以下是如何配置应用程序使用 HTTP/AJAX 的完整示例:

using GenieFramework

Genie.config.log_requests = false

@app Name begin
  @in name = "World!"
end

function ui()
    [
      h1([
        "Hello "
        span("{{name}}")
      ])

      p([
        "What is your name? "
        textfield("", :name, placeholder="Type your name")
      ])
    ]
end

route("/") do
  model = init(Name, transport = Genie.WebThreads)
  page(model, ui()) |> html
end

Genie.isrunning() || up()