Продвинутые способы конфигурации
Метатеги
Вы можете изменить заголовок в браузере, значок вкладки и изображение для предварительного просмотра, задав метатеги приложения. Для этого можно определить собственный макет или отредактировать макет по умолчанию следующим образом.
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)
Выбор транспортного уровня: WebSocket или HTTP
По умолчанию Stipple пытается использовать WebSocket для синхронизации данных в реальном времени между бэкендом и фронтендом. Однако в некоторых случаях протокол WebSocket может не поддерживаться хостом. В этом случае Stipple можно переключить на синхронизацию данных по обычному протоколу HTTP с опросом фронтенда с помощью AJAX (интервал опроса по умолчанию составляет 1 с). Чтобы настроить использование AJAX и HTTP в Stipple, можно передать параметр transport
в метод init()
, например:
model = Stipple.init(Name, transport = Genie.WebThreads)
В настоящее время параметр transport
может принимать следующие значения: Genie.WebChannels
(по умолчанию, используется WebSocket) и 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()