当前位置:主页 > 云存储 > 安全 >

cdn系统_美国_物联网智能家居

  • 安全
  • 2021-04-09 06:03
  • 动埠云

在本文中,我将向您展示如何使用OpenUI5/SAPUI5应用程序中的WebAssembly模块。我们将获取WebAssembly模块(用Rust构建),解析其元数据,并在sap.m.List控件中呈现可用的函数及其签名!

我们将学习以下内容:

WebAssembly简介如何创建WebAssembly模块如何在JavaScript中获取它们如何从我们的OpenUI5/SAPUI应用程序调用WebAssembly函数

最终结果位于GitHub:https://github.com/gladimdim/webasm-ui5-loader。

WebAssembly是一种新的二进制格式,设计非常紧凑和快速。WebBaseLead目标与在C/C++中编写的本地应用程序几乎相同。现在所有主流浏览器都支持这种格式:Chrome、Safari、Edge和Firefox。您可能已经在web上使用了WebAssembly应用程序。

支持WebAssembly的浏览器列表:

WebAssembly不是独立语言,但您可以手动编写二进制代码或使用WebAssembly文本格式在其中创建程序。其他语言必须编译到WebAssembly。Rust语言为WebAssembly提供了最好的工具之一[https://www.rust-lang.org/你可以在这里读到更多关于WebAssembly的信息:https://www.infoworld.com/article/3291780/web-development/what-is-webassembly-the-next-generation-web-platform-explained.html

对于本文,我们将使用Rust语言编译为wasm二进制格式。

我们将在Rust中编写几个函数,如sum和乘法,然后将它们编译成wasm。

要将Rust代码编译成WebAssembly,我们将使用wasm包:https://github.com/rustwasm/wasm-pack

Rust项目位于GitHub的子文件夹内:https://github.com/gladimdim/webasm-ui5-loader/tree/master/wasm-math

同时存储库包含已构建的wasm模块:https://github.com/gladimdim/webasm-ui5-loader/blob/master/webapp/wasm\u math\u bg.wasm

生锈代码https://github.com/gladimdim/webasm-ui5-loader/blob/master/wasm-math/src/lib.rs包含两个函数:

我们将从JavaScript(OpenUI5应用程序)调用这些函数。

如果您想编译然后按照自述文件中提供的详细步骤进行操作:https://github.com/gladimdim/webasm-ui5-loader/tree/master/wasm-math

编译该项目后,真正云服务器,您可以将结果(wasm文件)复制到webapp文件夹中。

GitHub存储库是有效的OpenUI5/SAPUI5应用程序。因此您可以将其部署到SAP Web IDE并在那里运行代码,或者您可以在您的机器上完成。

我们将在控制器的onInit方法中初始化WebAssembly模块:

我们使用标准的Fetch API从服务器加载wasm文件:

从响应中我们得到ArrayBuffer并要求WebAssembly从中实例化模块。

WebAssembly.instantiate返回一个promise,它用我们的函数:

现在我们可以从开发工具控制台调用我们的函数:

出于教育目的,我决定使用https://www.npmjs.com/package/@webassemblyjs/wasm-解析器库获取公开函数的元信息。

我们可以使用wasm parser Decode函数创建一个包含所需信息的JSON:

一旦"functionsMeta"完成已初始化,大数据提供,我们可以创建JSONModel并呈现我们的列表:

您可以使用官方的OpenUI5命令行工具https://github.com/SAP/ui5-cli在本地机器上运行。

在本地运行

打开命令行并输入以下命令:

然后在浏览器中打开此URL:

:8080/index_ui5.html

在SAP WebIDE中运行

您也可以运行sapwebide中的同一个项目。

为此,您必须克隆repo,然后运行索引.html与任何其他SAP WebIDE项目一样,

您将看到WebAssembly模块导出的函数列表。i32是WebAssembly类型的名称(整数32位)。我们将它们绑定到ObjectListItem,软件企业管理,让用户现在,个人大数据,该函数返回整数。

,什么大数据

  • 关注微信

猜你喜欢

微信公众号