-
可在Babel编译期自动注入SDK性能打点逻辑,无需改业务代码;通过AST匹配CallExpression节点识别目标调用(如AlipaySDK.pay),插入start/end计时及上报,支持Promise/回调/异常捕获,零依赖、不污染全局、可配置白名单。
-
ServiceWorker的message事件不支持直接回复,必须用MessageChannel实现双向通信:主线程创建通道并transferport2,SW通过event.ports[0]回复;不可用self.clients.matchAll()伪双向。
-
应使用CSS控制字体样式,禁用已废弃的<font>标签;font-family需提供带通用族的字体列表,font-size推荐用px单位,color优先用十六进制或rgb();须避免行内重复书写、中英字体名混用及大小写错误,并注意system-ui的兼容性问题。
-
使用Flexbox替代float可解决右对齐布局问题。float:right易导致父容器高度塌陷、元素换行错位及内容环绕,需通过clear:both清除浮动;而flex布局中justify-content:flex-end能稳定实现子元素整体右对齐,且支持响应式设计。对于部分元素右对齐需求,可对目标元素设置margin-left:auto,推动其至最右侧,其余保持左对齐。现代布局推荐优先采用Flexbox方案,避免浮动副作用,提升维护性,仅在兼容老旧浏览器时考虑float。
-
HTML中需转义<、>、&、"、'五字符,\_通常无需转义但混用Markdown时需写\\_;短代码用<code>加转义,多行用<pre>。
-
sticky失效主因是祖先元素overflow:hidden/auto/scroll截断滚动上下文;需逐级检查父容器overflow值,改用clip-path替代或调整DOM结构;同时确保父容器有高度、不触发新层叠上下文,且sticky元素设top等偏移值。
-
局部同构更新不能实现“不重刷页面却更新SEO”,SEO内容必须由服务端直出并存在于初始HTML中;局部刷新仅能安全更新与服务端输出严格匹配的子树,不得破坏已有SEO结构。
-
大屏轮播应通过WebSocket推送轻量指令而非原始数据,前端预加载缓存数据并增量更新图表,地图和桑基图需复用配置、禁用自动布局,轮播中断须双向同步暂停状态。
-
WebGL是浏览器内置的底层图形API,需手动编写着色器、管理缓冲区和渲染管线;Three.js是其高级封装库,提供Scene、Mesh等语义化对象。纯WebGL灵活轻量但门槛高,Three.js开发快但掩盖细节。
-
CDN选型应优先确保源站Cache-Control可自定义,否则CDN无法缓存;静态资源需显式设置public/max-age/immutable;URL哈希优于查询参数;需验证边缘节点实际覆盖;HTTP/2推送已废弃,改用preload或preconnect。
-
应使用严格相等字面量守卫(如===true)进行类型收窄,而非真值判断、in操作符或类型断言;自定义类型谓词适用于需复用或增强可读性的场景。
-
Sass无法读取CSS变量,只能将Sass变量编译为CSS变量;需在:root中输出纯值或预计算的衍生值,避免运行时逻辑;混用时注意作用域、优先级及JS配合切换主题。
-
PageLifecycleAPI无法捕捉用户关闭标签的异步前兆,唯一可靠时机是pagehide(persisted===false),须同步执行,推荐navigator.sendBeacon()或img打点;beforeunload、visibilitychange、freeze均不适合作为关闭信号,应采用关键动作即时上报+pagehide守底策略。
-
HTML不创建manifest.json,仅通过<linkrel="manifest">引入;该文件须手动编写并部署于根目录或正确路径,满足HTTPS、application/manifest+jsonMIME类型、非空name/short_name及含192x192和512x512PNG图标的icons等条件。
-
可采用五种方法将文本等格式转为标准HTML:一、在线Markdown工具;二、Pandoc命令行;三、Python脚本调用markdown与BeautifulSoup;四、浏览器开发者工具手动构造;五、VSCode插件实时渲染导出。