-
Canvas是唯一可行的底层方案,因其在实时协作、笔迹平滑性与性能压测下表现稳定;必须手动处理事件节流、坐标归一化、路径压缩和上下文重置以解决卡顿、断笔、偏移问题;需检查getContext('2d')是否返回null并fallback,避免静默失败;移动端须校验CSS缩放导致的坐标扭曲;必须同时监听鼠标与触控事件并阻止默认行为;擦除应使用'destination-out'合成模式而非画白色;导出时需适配跨域、Retina屏及透明背景。
-
AntDesign是成熟React组件库而非低代码搭建工具,需集成使用而非生成组件;其核心价值在于开箱即用的规范组件、主题配置(theme)、国际化(locale)及性能优化(如virtual),而非可视化拖拽。
-
AppCache已被所有主流浏览器废弃,唯一可行的离线方案是ServiceWorker+CacheAPI;因其存在更新不可控、全站故障、不支持请求拦截等根本缺陷,W3C于2018年将其标记为obsolete。
-
不能用<table>套整个页面,因其专为结构化数据设计,用于布局会导致语义错乱、可访问性差、响应式失效、维护困难;报表页应仅在行列关系明确处使用,并配齐<thead>/<tbody>、<th>与scope属性,整体布局推荐Flexbox或Grid。
-
HTML本身无法实现全屏,需用JavaScript的requestFullscreen()方法(用户手势触发)配合:fullscreen伪类控制样式,调用返回Promise需捕获错误,退出靠fullscreenchange事件和document.fullscreenElement判断。
-
HTML文件需先格式化再diff,否则90%差异为格式噪音;推荐tidy或prettier标准化,浏览器端用diff2html可视化,语义级对比须用lxml或html5lib解析DOM树。
-
函数节流的核心是“稳执行”而非“少执行”,需配合passive:true和requestAnimationFrame,避免强制重排与重绘,轻量逻辑外移至WebWorker或虚拟滚动。
-
JavaScript中反斜杠用于转义字符,必须正确使用:\"、\'、\\、\n、\t、\r等有特定含义;模板字符串不支持\x转义;正则需双重转义;ES6推荐\u{...}和\x替代八进制。
-
WebWorkers通过消息传递实现主线程与Worker线程间的通信,支持字符串、数字、数组、对象及ArrayBuffer等可序列化数据类型,不支持函数、DOM节点等;利用postMessage发送数据,onmessage接收,可通过TransferableObjects如ArrayBuffer提升大数据传输性能,传输后原引用失效;主线程调用worker.terminate()或Worker内调用self.close()关闭Worker,同时需监听onerror处理异常;适用于高耗时任务如大数据解析、图像
-
必须使用input[type="radio"]配合label和CSS兄弟选择器实现,确保可访问性、键盘导航及表单提交;禁用display:none隐藏radio,改用position:absolute;clip:rect(0000);悬停与选中状态需通过:checked~label和:hover~label叠加控制;fieldset包裹并配legend满足WCAG标准。
-
BigInt是处理大型科学装置原始脉冲计数值的唯一可靠选择,因其可精确表示超10¹⁸量级整数,避免Number类型因精度限制导致的截断与失真,确保计数、比较、累加、差分全程保真。
-
闭包封装权限校验函数,通过工厂函数接收权限数组并返回记忆化校验函数,支持字符串/数组输入及通配符处理,配合Vue模板、自定义指令实现声明式按钮控制,需结合响应式状态确保权限更新同步。
-
HTML离线跳转空白主因是ServiceWorker未针对destination==='document'请求单独拦截并返回缓存的index.html;SPA需统一fallback至index.html,且HTML与JS资源必须同步缓存、版本一致,并启用skipWaiting()和clients.claim()确保SW及时生效。
-
应使用setHTML()配合Sanitizer实例替代innerHTML,因其默认禁用事件处理器、javascript:伪协议等XSS载荷;但需注意浏览器兼容性(Safari不支持)、必须显式传入Sanitizer实例、不支持ShadowDOM,且服务端仍需基础过滤。
-
display:flow-root是解决浮动导致父容器高度塌陷最干净、语义化的方案,它通过创建BFC使父容器包含浮动子元素尺寸,不裁剪内容、无副作用,现代浏览器支持良好。