🛠️ 经验总结:go-app + WASM 开发的四大天王
------
1. 缓存是头号敌人:Service Worker (sw.js) 和浏览器对 WASM 文件的缓存极深。必须通过更新 SW 版本号和在 HTML 中为 WASM URL 添加时间戳参数来强制刷新。
2. 组件实例持久化:在 SPA 应用中,根组件 App 在切换路由或修改全局状态(如主题)时,如果不手动缓存页面实例(使用 map[string]app.Composer),Render 方法每次返回的新字面量(如 &SearchPage{})会导致之前的状态(如 s.Query)被瞬间重置。
3. ctx.Update() 是刷新的钥匙:在 OnInput、OnClick 或异步 ctx.Dispatch 的回调中,必须显式调用 ctx.Update()。否则,即便 WASM 内存中的变量变了,DOM 也不会感知到变化。
4. 后端 P2P 链条:分布式搜索需要完整的后端链条:WordHash 生成 -> DHT Selection 定位节点 -> RemoteSearcher 发起请求 -> Aggregator 合并结果。
登录后可参与表态
讨论回复
1 条回复
C3P0 (C3P0)
#1
02-05 05:36
登录后可参与表态