-
WebWorkers是HTML5提供的后台线程API,用于在独立于主线程的环境中执行JavaScript脚本,避免阻塞UI。通过newWorker('worker.js')创建实例,利用postMessage传递数据,onmessage接收结果,实现主线程与Worker线程间的消息通信。Worker分为DedicatedWorker、SharedWorker和ServiceWorker,其中DedicatedWorker适用于单一脚本的高负载计算任务。由于线程间数据通过结构化克隆算法序列化传输,大对象传递
-
confirm()会阻塞主线程且现代浏览器限制严格,应改用Promise封装的自定义弹窗组件实现:遮罩层+可聚焦按钮+键盘支持+异步返回。
-
直接用diff-match-patch浏览器端实现HTML差异高亮,因其纯字符串级对比、无需后端、不解析DOM、内置XSS防护(需配合DOMPurify转义)、支持字符级精准标红/绿(如<del>lo</del><ins>hi</ins>),且5分钟可完成可交互页面开发;而diff命令和gitdiff仅输出unifiedpatch格式,需额外工具转换,且无自动转义易致XSS。
-
用更高特异性选择器替换!important是绝大多数场景下唯一可持续解法,因其遵循CSS层叠逻辑正道,避免“谁的!important更重要”死循环,并支持可维护的权重演进。
-
前端跨域问题因浏览器同源策略导致,可通过9种方案解决:1.后端配置CORS允许跨域;2.Nginx反向代理使请求同源;3.开发环境使用Vite或webpack代理;4.JSONP实现GET跨域(仅支持GET);5.postMessage实现跨窗口通信;6.WebSocket不受跨域限制用于实时通信;7.document.domain适用于主域相同子域不同场景;8.window.name+iframe中转兼容旧浏览器;9.使用cors-anywhere等代理服务临时调试。推荐开发用本地代理,生产环境由后端配
-
FirebaseFirestore要求每个复合查询(含多个where条件,尤其含范围操作符如<,<=,>=)必须有对应复合索引;无法真正“泛化”跳过索引,但可通过CLI预定义、合理设计字段结构及限制范围过滤器数量来系统化管理。FirebaseFirestore要求每个复合查询(含多个`where`条件,尤其含范围操作符如`
-
position:absolute下拉菜单错位因定位基准不稳定且top:100%无法适配动态高度;需父级设relative、box-sizing:border-box,并用visibility+transform替代display实现平滑过渡。
-
新闻邮件模板必须用表格+内联样式实现兼容,因Outlook、Gmail等客户端主动过滤CSS、JS及现代HTML标签,仅支持降级语法以确保不崩。
-
PKCE是移动端/SPA中替代client_secret的唯一合规方案,需用加密安全随机源生成43–128字符的code_verifier,经SHA-256哈希和Base64URL编码得code_challenge,授权请求带code_challenge与S256方法,换token时原样提交code_verifier。
-
关键是在submit事件中用querySelector按name或id定位input并取.value,需preventDefault防止刷新,值为字符串需手动转换类型。
-
ButtonFace、CanvasText等系统颜色关键字在现代项目中不可控、不可测、不可维护——它们依赖操作系统与浏览器联合解释,跨平台表现不一致,构建工具可能静默丢弃,且不响应prefers-color-scheme或forced-colors,WCAG合规性无保障;应改用语义化CSS自定义属性配合媒体查询精准控制。
-
ChromeDevTools没有“层面板”,实为对Rendering面板中Layerborders功能和Performance面板GPU监控的误称;Layerborders仅可视化合成层边界(KB级CPU元数据),不反映GPU显存(MB/GB级),显存泄漏需通过Performance面板GPUMemory曲线阶梯上升与任务管理器GPUProcess内存持续上涨交叉验证,并排查WebGL纹理未delete、OffscreenCanvas未close、CSS强制合成滥用等源头。
-
<p>prefers-color-scheme是CSS媒体查询,用于响应系统暗色偏好:@media(prefers-color-scheme:dark){/暗色样式/},支持Chrome76+等现代浏览器,值为light/dark/no-preference,需配合data-theme属性避免与手动切换冲突。</p>
-
col标签需配合table-layout:fixed才能固定列宽;单独设width无效,且col的width属性已废弃,必须用CSS的style或class设置,span仅作用于起始列,colgroup须为table直接子元素。
-
transform-style:preserve-3d是魔方旋转的前提,不加则子元素被强制扁平渲染,Z轴位移和旋转全失效;必须作用于魔方容器(如.cube),并配合外层容器设置perspective以建立真实3D空间。