Документация 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)

Выбор транспортного уровня: 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()