使用 ScriptManager (Rhino) 从 Java 中使用 Javascript HTML5 类型数组,如何?

Posted

技术标签:

【中文标题】使用 ScriptManager (Rhino) 从 Java 中使用 Javascript HTML5 类型数组,如何?【英文标题】:Using Javascript HTML5 typed arrays from Java using the ScriptManager (Rhino), how? 【发布时间】:2011-10-14 11:32:01 【问题描述】:

我一直在将我在客户端 javascript 中开发的应用程序移植到我的服务器(用于多人游戏)。我正在使用 ScriptEngine 执行某些部分,因为我想在客户端和服务器中使用相同的代码,而不必重新编码所有内容。

一开始它工作得很好,但后来我偶然发现了来自 html5 的新类型数组(Float32Array,Uint8Array...)的问题。 ScriptEngine (Rhino) 不支持这些数组,出于性能原因我需要它们,因此我无法使用非类型数组在 javascript 中重新实现它们。

我想用 Java 重新实现它们并导入包,但没有办法在 Java 中重新实现 [] 运算符,也无法扩展基本数组 (AFAIK)。

所以最后我做了一个 hack 并为开发者制定了一些规则。

有没有人知道用 Java 重新实现类型化数组并将它们导出到 Javascript 的解决方案或方法?

谢谢

【问题讨论】:

【参考方案1】:

如果我没记错的话,这可能对你有帮助

http://json.org/java/

【讨论】:

我不认为 JSON 与所提出的问题有任何关系。 我指的不是json,它有可以将java集合/数组转换为java脚本数组json.org/javadoc/org/json/JSONStringer.html 但这不是我需要的。我需要在 Java 的 Javascript 引擎中对类型化数组进行原生低级支持。还是谢谢。

以上是关于使用 ScriptManager (Rhino) 从 Java 中使用 Javascript HTML5 类型数组,如何?的主要内容,如果未能解决你的问题,请参考以下文章

基类包括字段“ScriptManager1”,但其类型(System.Web.UI.ScriptManager)与控件(System.Web.UI.ScriptManager)的类型不兼容

通过Ajax来简单的实现局部刷新(主要为C#中使用的UpdatePanel控件和ScriptManager控件)

ScriptManager和UpdatePanel用法 (ajax)

使用 Rhino(Mozilla 的 rhino)的优点

ScriptManager.RegisterStartupScript 不断添加脚本块多次

在户自定义控件中使用了ScriptManager,那母页里怎么办?