-
ChromeWebPush失败主因是环境不满足硬性条件:必须HTTPS(localhost除外)+用户授权+ServiceWorker正确注册激活;常见问题包括协议非安全、SW文件响应异常、scope错误、隐私模式屏蔽、pushManager未就绪、VAPID格式错误及FCM链路中断。
-
setTimeout只执行一次,setInterval反复执行直至手动清除;前者是延迟一次的宏任务,后者是按间隔触发但易堆积回调,误用会导致内存泄漏或UI卡顿。
-
错题本导出功能必须用单选按钮实现HTML/PDF/Excel三种互斥格式选择,name统一为export_format,value分别设为html、pdf、xlsx,且需默认选中并校验checked状态。
-
Tailwind原子类重构需遵循组合逻辑、响应式断点规范、class顺序覆盖规则、语义化命名及配置精简原则,避免照搬Bootstrap思维与硬编码样式。
-
Sass与CSSModules结合可提升样式可维护性,通过.module.scss文件实现局部作用域,利用变量、混合等特性增强样式组织,配合Webpack配置实现模块化构建,推荐组件级样式优先使用模块化、统一设计token管理,避免全局污染。
-
响应式设计应按内容流动规律设3–4个语义化断点,而非盲目堆砌设备尺寸断点;关键在于内容“撑不开”或“太松散”的临界点,如导航栏折叠、卡片列数变化处。
-
频繁触发重排的HTML结构包括:1.table布局;2.内联元素与float混用;3.读取offsetWidth等后立即改样式;4.display:inline-block父容器含vertical-align子元素。
-
大多数现代浏览器对localStorage的单域名存储上限是5MB,但SafariiOS曾限2.5MB,macOSSafari17+升至5MB;超限时抛出QuotaExceededError,需try...catch捕获;无预检接口,须用TextEncoder估算UTF-8字节长度;大容量应选IndexedDB或CacheAPI。
-
:invalid伪类仅在用户交互后匹配原生校验失败的表单控件,需配合required、type等属性使用,不替代JS校验,样式需显式声明且注意浏览器兼容性与状态叠加问题。
-
图片未加载时应使用带宽高和aspect-ratio的div容器配合::before伪元素+内联SVG背景图实现骨架屏,真实图片绝对定位覆盖并监听onload平滑过渡,动画仅限opacity/transform且需适配DPR与prefers-reduced-motion。
-
应使用margin-top属性调整HTML元素与上方内容或容器顶部的距离,它通过设置上外边距在元素外创建空白;也可用padding-top(影响元素自身高度)、position+top(定位偏移)、flex布局的align-self或margin-auto(弹性布局控制)、CSS自定义属性与calc()(动态响应式计算)等方法实现。
-
JavaScript性能优化的核心是减少主线程阻塞、降低资源加载开销、提升执行效率;需代码分割与按需加载、合理使用defer/async、拆分长任务、启用虚拟滚动、节流防抖及善用原生API。
-
Vue.js前端无法直接将图片写入项目本地src/assets文件夹(因浏览器沙箱限制),正确做法是通过FormData提交文件至后端API,由服务器完成存储与路径返回。本文详解上传流程、前端实现、安全注意事项及调试建议。
-
本文详解如何通过LottiePlayer的原生属性与JavaScriptAPI,实现动画仅播放一次并在Logo完整呈现后自然定格,避免循环干扰视觉一致性。
-
flex-basis用于设置flex子元素在主轴方向的初始尺寸,影响布局分配前的基础大小。其值可为固定长度(如px、%)、auto或content,分别对应具体尺寸、默认宽高或内容所需空间。在横向布局中类似width,纵向则类似height,仅在flex容器中生效。常与flex-grow和flex-shrink结合使用,构成flex简写属性,如flex:11200px表示初始大小200px且可伸缩。推荐避免同时设置width和flex-basis以减少冲突,配合flex-wrap可精准控制换行前的尺寸,提