设计用于处理对静态数据的回调关闭限制

问题描述

Web应用程序大量使用了来自用户交互的回调,例如鼠标单击,列表选择。

wasmbind-gen api将回调设置为闭包,这需要静态数据

https://rustwasm.github.io/docs/wasm-bindgen/reference/passing-rust-closures-to-js.html

对于更多非常规的Web应用程序,我的设计最终遇到的情况与例如 Rust FFI,callbacks,and lifetimes

总之,越来越多的数据需要放入static mut

对于Web应用程序,对象和回调非常动态。例如。单击按钮最终会创建一个登录字段。 这就要求更多的数据字段是静态的,从而扩大了设计问题。

wasm-bindgen示例,TodoMvc https://github.com/rustwasm/wasm-bindgen/tree/master/examples/todomvc

通过存储在window.local_storage中,以一种解决方法来处理此问题 https://github.com/rustwasm/wasm-bindgen/blob/master/examples/todomvc/src/store.rs#L15

-

我尝试使用全局静态 static mut _WASM_ELEMA : Vec<ElemA> = Vec::new();

这可以正常工作,但是对于每种结构(例如ElemA)都是特殊的。

-更新---

常规类型,可以通过 static mut WASM_STORE: Vec<Box<dyn Any>> = Vec::new();

让它可以与基于get的{​​{1}}函数一起使用,如果此解决方案可以是{{1 }}商店。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...