-
HTML通知(NotificationAPI)与WebPush需配合使用才能实现关页后推送;Notification仅负责显示,WebPush负责后台消息传递;Permission为"default"是因用户未明确授权,须由用户主动触发且HTTPS下运行。
-
Tailwindscrollbar-hide插件无效需检查三件事:npm包是否安装、tailwind.config.js中plugins是否引入、content路径是否覆盖JSX/TSX文件;类必须加在滚动容器上,且该容器需有溢出内容和固定高度。
-
HTMLmeta的content是元数据值,须与name或http-equiv配对;CSS伪元素的content是生成内容指令,仅用于::before/after;contenteditable是布尔属性,控制编辑状态,三者语义与用法互不相关。
-
export仅定义同步能力的接口契约,不实现分布式同步逻辑;其通过命名导出、默认导出和类型导出暴露可复用、可测试的同步API,依赖鸿蒙等底层分布式能力完成真实数据同步与通讯。
-
SVG圆环进度条通过stroke-dasharray设为周长、stroke-dashoffset动态偏移实现,需配合rotate(-90)对齐顶部、viewBox响应式缩放,并仅对stroke-dashoffset做CSS过渡动画。
-
本质区别在于语义层级与监控捕获:console.warn表示可恢复的非严重问题,不触发断点、常被SDK忽略;console.error表示预期外失败,带堆栈、默认被捕获。
-
最可靠的选择器测试方式是在Elements面板用Ctrl+F或Cmd+F直接输入CSS选择器,支持完整语法并高亮匹配元素,显示“XofYmatches”或“Noresults”。
-
预解析是引擎对整个作用域的快速扫描,仅提升var和function声明;懒解析则延迟函数体解析至首次调用,二者协同缩短首屏可交互时间。
-
SEO有效标题和描述必须由服务端在首屏HTML中直出,客户端JS动态修改无效;局部同构刷新要求服务端与客户端对区块语义、数据边界、key及props严格一致,否则导致水合失败、SEO内容丢失。
-
console.log是轻量调试工具,需用标签、分组、对象包裹提升可读性;console.table适合结构化数据对比;console.trace和console.time分别用于追踪调用栈和性能计时;注意日志非原子性,需快照避免引用误读。
-
position:fixed“飘”是因父容器transform创建新包含块、z-index层级不足或Safari移动端兼容问题;应移除无意义transform、设足够z-index、用translateY(-50%)居中且不干扰参照系,并为Safari加-webkit-sticky降级。
-
主题切换不必强制用JavaScript控制:root,但主动切换主题必须依赖JS修改:root自定义属性以触发重绘;纯CSS仅支持有限响应,如系统暗色模式。
-
最简方案是直接给body加background-attachment:fixed,但iOSSafari和部分安卓WebView不支持,且Chrome在body有transform等属性时也会禁用;推荐用body::before伪元素模拟fixed效果,需设position:fixed、z-index:-1、pointer-events:none,并确保background-size:cover和background-position:center。
-
matchMedia是浏览器原生API,用于监听媒体查询变化,支持响应视口尺寸、暗色模式、减少动画等环境变化,需注意实例复用、事件清理及SSR兼容。
-
前端缓存策略需平衡性能与一致性,核心包括:1.浏览器HTTP缓存(Cache-Control、ETag)和ServiceWorker实现网络资源缓存;2.内存缓存如函数记忆化与单例对象减少重复计算;3.本地存储(localStorage、IndexedDB)持久化数据并管理过期;4.结合时间戳、版本号或WebSocket实现实时更新机制,确保数据有效性。