问题标签 [js-of-ocaml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何构造一个js对象并用js_of_ocaml调用它的方法?
我尝试使用 js_of_ocaml 构建应用程序。假设我在 javascript 中有以下代码:
如何在 OCaml/js_of_caml 中编写与下面的 js 代码具有相同效果的代码?
我试着写一些类似的东西:
构造函数被调用,但我有以下错误,所以它似乎不是正确的方法。我也尝试过 Js.Unsafe.meth_call 函数,但效果并不好。
任何帮助,将不胜感激。
javascript - 更新 html 滑块属性但在页面中不可见
我有一个 html 滑块,我想动态更改滑块上光标的位置。
看看我的 jsfiddle 演示:http://jsfiddle.net/8DCS6/
我将最大值设置为 14,然后我有一个按钮。当我单击按钮时,我想更改光标的位置,为此,我将属性值更改为 10,但光标不移动。但是,如果我单击光标,光标会移动,但这并不是我真正想要的,因为我只想更改属性值并查看光标的移动。
有人有这样做的想法吗?
我只搜索纯 javascript 解决方案,因为我使用的是 js_of_ocaml ( http://ocsigen.org/js_of_ocaml/ )。我想要一个 javascript 来翻译 js_of_ocaml。
ocaml - 使用 OCaml 编组数据的通信客户端-服务器
我想用 OCaml 中的服务器做一个客户端 js_of_ocaml 应用程序,具有下面描述的约束,我想知道下面的方法是否正确或者是否有更有效的方法。服务器有时可以发送大量数据(> 30MB)。
为了使客户端和服务器之间的通信更安全、更高效,我在 .mli 文件中共享一个类型 t ,如下所示:
然后,这种类型被编组为一个字符串并在网络上发送。我知道在客户端,缺少某些类型(Int64.t)。
此外,在客户端发送的 XMLHTTPRequest 中,我们希望从服务器接收多个编组对象,有时以流模式(即:loading
在请求状态期间处理接收到的编组对象(如果可能),而不是仅在done
状态期间)。
这些约束迫使我们将responseText
XMLHTTPRequest 的字段与 content-type 一起使用application/octet-stream
。
此外,当我们从 中取回响应时responseText
,由于 JavaScript 的字符串是 UTF-16 格式,因此会进行编码转换。但是编组的对象是二进制数据,我们做必要的事情来检索我们的二进制数据(通过覆盖字符集x-user-defined
并在字符串的每个字符上应用掩码responseText
)。
服务器(OCaml 中的 HTTP 服务器)正在做一些简单的事情,如下所示:
但是,在客户端,js_of_ocaml 的实际 JavaScript 原语caml_marshal_data_size
需要一个 MlString。但是在流模式下,我们不想将 javascript 的字符串转换为 MlString(它可以在完整的字符串上迭代),我们更愿意只进行大小验证和解组(以及对编码问题应用掩码)在读取的字节上。因此,我用 javascript 编写了自己的元帅原语。
处理请求和响应的客户端代码是:
原语是:
这是将大型 OCaml 值从服务器传输到客户端的最有效方式,还是节省时间和空间的替代方案?
ocaml - 如何设置 Dom 元素的属性
我创建了一个带有调用的 td 元素,例如:
我现在想在这个对象上设置一个属性。我试过这个:
但我得到了错误:
错误:此表达式的类型为 Dom_html.tableCellElement Js.t
它没有方法 setAttribute
ocaml - 如何触发和处理点击事件?
在以下代码中,我尝试处理复选框上的单击事件。我希望在 javascript 控制台中看到“hello”这个词,但我什么也没看到。如何修改代码以执行打印语句?
ocaml - 如何调用 js_of_ocaml 方法?
我有一个单行 js_of_ocaml 程序:
失败并出现错误:
我如何调用这个方法?
ocaml - 通过 ocamlbuild/ocamlfind 链接库
我有一个名为 ojasmine 的本地固定 OPAM 项目,我想将其编译为一个库,供另一个名为 test_tournabox 的项目使用(最终编译为 javascript)。但是,test_tournabox 的编译因链接错误而失败。
我编译 ojasmine 如下,给出目标 ojasmine.cma:
然后我像这样安装它:
我觉得奇怪的是 ojasmine.cma 不在我的项目目录中,而是在 _build 目录中。
输出是:
接下来,我cd
到我的 tournabox 项目并尝试构建测试套件:
这失败并出现错误:
似乎 ojasmine.cma 没有链接到可执行文件 test_tournabox.byte。但我希望 ocamlfind 的 -linkpkg 参数可以安排这一点。我错过了什么?
编辑:这是 META 文件:
这是ocamlobjinfo:
ocamlfind 看到它:
这里是:
这是 ojasmine.ml:
和 ojasmine.mli:
curl - Js_of_ocaml:调用 ocurl 和 str 时缺少原语
我正在使用包 curl 来发出 Http 请求(以及使用正则表达式的包 str)。我正在我的项目中编译文件,没问题,当我用 js_of_ocaml 编译 file.byte 时,我有这些错误:
js_of_ocaml --禁用 genprim foo.byte
当我包含生成的 js 文件时,我在 Web 控制台中出现此错误: Uncaught ReferenceError: helper_curl_global_init is not defined
我知道缺少原语,这导致了我遇到的错误,但是有解决方案来解决这个问题吗?
javascript - Js_of_ocaml - 获取 cookie 时出错
我是 XmlHttpRequest 为了发出 http 请求,我想获取 cookie。获取 cookie 的代码:
cookie 应该在标题中,我收到此错误:拒绝获取不安全的标题“Set-Cookie”
这是我弄错cookie的方式还是我的网络浏览器有问题(我使用的是铬)?
javascript - 如何使用 js_of_ocaml 添加 onclick 方法?
嗨,假设我有一个带有 id 的按钮,form-submit
并且我的 OCaml 文件中有以下功能:
向按钮添加 on_click 方法的正确方法是什么?我应该做这样的事情吗?
但是处理函数的类型是什么?我在文档中找不到它。