Документация Engee

StippleTypedArrays

StippleTypedArrays — это плагин Stipple для интеграции массивов TypedArrays из JavaScript.

Типичным вариантом их использования являются буферы, например для скачивания файлов или обработки и отправки информации по двоичным каналам.

В StippleTypedArrays введена векторная оболочка TypedArray, которую можно использовать в объявлениях типов для переменных приложения.

Обратите внимание:

на стороне бэкенда все обработчики работают обычным образом. Однако на стороне клиента JavaScript не может отслеживать типизированные массивы, поэтому любые изменения буфера на стороне клиента не будут автоматически синхронизированы.

Чтобы синхронизировать данные с сервером, после изменения значения необходимо вызвать this.push('data').

Демонстрационное приложение

using Stipple, Stipple.ReactiveTools
using StippleUI

using StippleTypedArrays
using StippleDownloads

@app begin
    @in data = TypedArray(UInt8[])
    @in data64 = TypedArray(UInt64[])

    @in add_data = false
    @in clear_data = false

    @onbutton add_data begin
        x = rand(0:255)
        push!(data, x)
        notify(data)
        push!(data64, x + 1000)
        notify(data64)
    end

    @onbutton clear_data begin
        data = data64 = []
    end
end

@deps StippleTypedArrays

function ui()
    row(cell(class = "st-module q-ma-md", [

        row(class = "q-pa-md bg-green-2", "Data: [{{ data }}]")
        row(class = "q-pa-md q-my-lg bg-green-4", "Data64: [{{ data64 }}]")

        row([
            btn("Add data", icon = "add", @click(:add_data), color = "primary", nocaps = true)
            btn(class = "q-ml-lg", "Clear data", icon = "delete_forever", @click(:clear_data), color = "primary", nocaps = true)
        ])
    ]))
end

@page("/", ui)

up(open_browser = true)