1.1 KiB
1.1 KiB
- 跨子模块共享可变状态与 DOM 引用集中放在
dbc.js导出的state/el对象上,各子模块通过 import 获取同一引用,利用 ES Module live binding 保证同步。 - 对外部不可信文本一律使用
escapeHtml/sanitizeHtml后再插入 innerHTML,所有数据属性赋值前先经escapeHtml,禁止拼接 HTML 字符串直接使用用户输入。 - 网络请求统一使用
new AbortController()+setTimeout双保险取消,防止在连接 reset 等边缘场景下 await 永久挂起。 - 高频本地持久化采用「收集事件 → scheduleCanPersist → 防抖定时器 → saveCanSessionNow」模式,并在 writePayload 失败时逐级减少 payload(压缩历史→清 signalValues)以容忍 localStorage 配额不足。
- DLC/字节数组输出统一走
padHex(value, width)与bytesToHex(bytes),确保十六进制展示宽度一致、全大写。 - 错误信息分层展示:完整描述走 buildSendResponseText,简短文案走 buildSendResponseShort 去掉冗余前缀,使历史记录空间有限时仍保留核心原因。