高级配置
选择传输层: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()