JavaScript 事件处理程序不断调用 WebAssembly 函数
JavaScript event handler continuously calls WebAssembly function
最近我 运行 遇到了一个奇怪的错误,我不确定这是我的代码错误还是 JS/Rust Web Assembly 中的问题。
长话短说,我一直在尝试从 js 事件处理程序调用 Web 程序集异步函数,由于某种原因,该事件不断触发无限次。例如,对于 'keydown' 事件,一旦你按下一个键,处理程序就会被调用(你可以释放键,它仍然认为你正在按下它)直到你切换标签。
代码示例:
生锈函数:
[wasm_bindgen]
pub async fn test() {
await something();
}
js代码:
import the wasm...
document.addEventListener('keydown', keyDownHandler, false)
function keyDownHandler() {
test();
}
你建议我做什么?我应该将其报告为 wasm 社区中的错误吗?也许你有适合我的解决方案?
由于您的意见,我终于解决了问题,非常感谢!
我做的是节流技术,你也可以试试debouncing技术
一个很好的article,比我更好地解释了这两种技术。
最近我 运行 遇到了一个奇怪的错误,我不确定这是我的代码错误还是 JS/Rust Web Assembly 中的问题。
长话短说,我一直在尝试从 js 事件处理程序调用 Web 程序集异步函数,由于某种原因,该事件不断触发无限次。例如,对于 'keydown' 事件,一旦你按下一个键,处理程序就会被调用(你可以释放键,它仍然认为你正在按下它)直到你切换标签。
代码示例:
生锈函数:
[wasm_bindgen]
pub async fn test() {
await something();
}
js代码:
import the wasm...
document.addEventListener('keydown', keyDownHandler, false)
function keyDownHandler() {
test();
}
你建议我做什么?我应该将其报告为 wasm 社区中的错误吗?也许你有适合我的解决方案?
由于您的意见,我终于解决了问题,非常感谢!
我做的是节流技术,你也可以试试debouncing技术
一个很好的article,比我更好地解释了这两种技术。