Meta tags
You can change the title in the browser, tab icon, and preview image by setting the meta tags of your app. You can do this by defining your own layout, or by editing the default layout like this:
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)
Choosing the transport layer: WebSockets or HTTP
By default Stipple will attempt to use WebSockets for real time data sync between backend and frontend.
However, in some cases WebSockets support might not be available on the host. In this case, Stipple can be
switched to use regular HTTP for data sync, using frontend polling with AJAX (1s polling interval by default).
Stipple can be configured to use AJAX/HTTP by passing the transport
param to the init()
method, ex:
model = Stipple.init(Name, transport = Genie.WebThreads)
The current available options for transport
are Genie.WebChannels
(default, using WebSockets) and
Genie.WebThreads
(using HTTP/AJAX).
Given that polling generates quite a number of extra requests, it can be desirable to disable automatic
logging of requests. This can be done using Genie.config.log_requests = false
.
Here is a full example on how to configure an app to use 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()