Juria Interact를 사용하여 브라우저에서 실행되는 UI 응용 프로그램 만들기

5843 단어 Julia

Julia Interact


Julia Interact는 다양한 UI 애플릿을 제공하는 패키지입니다.Jupyter에서 UI를 볼 수 있어 매우 편리합니다.하지만 개발 환경이 Jupyter에서 VS 코드로 바뀌었기 때문에 Jupyter에 의존하기는 좀 어렵다.
인터랙트는 워낙 다양한 환경을 지원하기 때문에 주노라면 잘 어우러질 것 같다.며칠 뒤에 vs 코드도 올 것 같지만 독립된 애플리케이션으로 사용하고 싶어 브라우저에서 직접 볼 수 있으면 좋겠다.그렇게 생각하면Mux됩니다.

Mux


Mux는 웹 응용 프로그램을 쓰기 위한 웹 서비스 프레임워크입니다.
이것을 사용하려면 다음과 같은 방법을 눌러도 된다.
sing Interact, Mux, WebIO

function uitest()
    b = button("click me")
    text = textarea()
    on(b) do val
        text[] = "Clicked $val times"
    end
    Widget(["button" => b, "text" => text])
end

ui = uitest()
WebIO.webio_serve(page("/", req -> ui), 8000)
click me라고 적힌 버튼과 텍스트 영역을 만들고 UI를 만들어 버튼을 클릭한 후 클릭한 횟수를 텍스트 영역에 기록합니다.webio_서버'에 공개됩니다.그리고 브라우저localhost:8000에서 보면 됩니다.다음 UI가 표시되어야 합니다.전혀 쓰지 않는 곳req에서 혼란이 일어났다.애플릿과 서버 간 웹소켓을 통한 통신이 이뤄지기 때문에 통상적인 HTTP 요청 등은 처음으로만 사용된다.

Interact 부품에 대한 의사록


인터랙트의 애플릿은 이해하기 어려운데, 아마도 활동하는 생각이 일반적인 것과 조금 다르기 때문일 것이다.예를 들어 단추가 있으면 단추에서 이벤트(예를 들어pressed,released 등)가 나타나기 때문에 호출을 이벤트로 정의합니다.
Interact의 경우 Observable을 기반으로 on에서 호출 함수를 정의합니다.상태 변경 시 Observable에서 호출 함수를 호출합니다.애플릿에서 발생하는 이벤트에 대해 무엇을 진행하기보다는 애플릿의 변화가 촉발이다.무슨 일이 일어났는지 반드시 리셋 함수의 매개 변수를 보고 함수 방면에서 판단해야 한다.

Mux용 서버 포트


나는 Mux로 세운 서버의 정지 방법을 잘 모른다.물론 모든 과정을 죽이면 죽지만 vs 코드에서 시작하면 배경 작업이기 때문에 멈출 수 없습니다.이렇게 되면 그 임무는 포트를 계속 잡고 있기 때문에 코드를 수정하고 같은 포트 상태에서 다시 실행하면 포트를 사용할 수 없어 떨어진다.
그러면 코드를 일일이 다시 써야 하기 때문에 디버깅이 매우 번거롭기 때문에 다음 공백 포트의 코드를 순서대로 찾아보세요.
import Sockets

function find_any_vacant_port(port, trial_count)
    error = nothing
    for i in 1:trial_count
        try 
            s = Sockets.listen(Sockets.ip"0.0.0.0", port + i - 1)
            close(s)
            return port + i - 1
        catch e
            error = e
            continue
        end
    end
    throw(error)
end
다음과 같이 사용합니다.
port = find_any_vacant_port(8000,20)
WebIO.webio_serve(page("/", req -> ui), port)
println("localhost:$port")

좋은 웹페이지 즐겨찾기