我想知道是否可以使用Julia以自动方式在网页上执行计算。
例如,假设我们有一个3x3 html表单,我们在其中输入一些数字。这些形成了一个方阵A,我们可以在Julia中找到它的特征值非常简单。我想使用Julia进行计算,然后返回结果。
根据我的理解(这方向有限)我想这个过程应该是这样的:
你觉得这样的事情有可能吗? (我已经看到一些使用HttpServer的东西允许使用浏览器进行计算,但我不确定这是否正确使用)如果是,那么我需要研究哪些内容?你有这种网络计算实现的例子吗?
答案 0 :(得分:4)
如果您正在使用或可以使用Node.js,则可以使用node-julia。它有一些限制,但应该可以正常工作。
巧合的是,我已经完成了一个完成这个的例子。可以使用粗略的模型here,它使用express来提供页面,并使用plot来显示结果(以及其他节点模块)。
另一种选择是使用Mux.jl在Julia中编写服务器本身并完全跳过服务器端的javascript。
答案 1 :(得分:0)
是的,可以使用HttpServer.jl
完成非常简单 - 你创建了一个启动HttpServer的小脚本,它现在可以监听指定的端口。配置Web服务器的一部分是定义在应用程序生命周期中发生特定事件时调用的一些处理程序(函数)(新请求,错误等)。
这是一个非常简单的官方例子: https://github.com/JuliaWeb/HttpServer.jl/blob/master/examples/fibonacci.jl
然而,事情可能变得复杂很快:
一个。呈现用户输入的HTML页面(默认情况下)
湾由于收到POST请求而呈现响应页面
您需要提取通过表单传输的数据有效负载。通过GET发送的数据很容易到达,通过POST发送的数据不是那么多。
如果您向用户公开此内容,则需要设置一些故障安全措施来重新生成服务器脚本 - 否则它可能会崩溃并退出。
如果您向全世界打开脚本,您必须确保它不容易受到攻击 - 您不想让黑客授权您在服务器上执行随机Julia代码或访问你的数据库。
因此,对于小案例的基本用法,是的,HttpServer.jl应该足够了。
如果你期望一个更大的项目,你可以试试Genie(https://github.com/essenciary/Genie.jl)。它仍然在进行中,但它处理大多数低级别的工作,允许开发人员专注于特定的应用程序逻辑,而不是传输层(Genie的作者在这里,顺便说一句)。
如果你遇到了GitHub问题和Gitter频道。
答案 2 :(得分:0)
试试Escher.jl。 这使您可以在Julia中构建网页。