-
Vite的热更新通过ES模块与WebSocket实现,文件变更后精准替换模块。1.监听文件变化;2.分析依赖关系;3.推送更新消息;4.客户端处理替换。相比Webpack,Vite无需打包、按需编译,速度更快。
-
ServiceWorker是实现离线体验的核心,通过拦截请求实现缓存控制。首先注册并激活ServiceWorker,需在HTTPS环境下调用navigator.serviceWorker.register()。安装阶段使用CacheAPI预缓存关键资源,确保首页、样式、脚本等可离线访问。运行时采用动态缓存策略,对API使用stale-while-revalidate,静态资源则networkfallingbacktocache。更新时在activate事件清理旧缓存,通过版本命名管理缓存生命周期。合理组合
-
使用box-sizing:border-box可解决浏览器盒模型不一致问题。默认content-box模式下宽高不含内边距和边框,易导致布局溢出;而border-box模式下宽高包含内容、内边距和边框,更易控制布局。通过,::before,*::after{box-sizing:border-box;}全局设置可统一所有元素的计算方式,推荐结合html{box-sizing:border-box;}与继承写法实现灵活管理。该属性在IE8+支持,旧版IE需条件注释处理。配合Normalize.css重置默认
-
使用CSS可隐藏HTML元素,方法包括:一、display:none彻底隐藏且不占空间;二、visibility:hidden隐藏但保留布局空间;三、opacity:0使元素透明但仍可交互;四、position移出视区实现视觉隐藏;五、结合JavaScript动态切换class控制显隐状态。
-
Normalize.css本质是温和校准浏览器默认样式差异,而非暴力清零;它保留语义化合理默认(如button样式、列表缩进),仅修正跨浏览器不一致渲染(如audio/video宽高、sub/sup对齐、details折叠等),支持IE9+,需避免与reset.css混用。
-
使用Node.js和commander等库可创建CLI工具,通过解析命令行参数、执行系统操作(如git、npm)和文件处理实现自动化工作流,例如构建、部署项目,提升开发效率。
-
纯CSS圆形进度条通过旋转遮罩层实现视觉欺骗,核心是transform:rotate()控制遮罩角度,指示器需绝对定位居中且脱离旋转流,动画仅用transform避免重排,响应式采用aspect-ratio和CSS变量适配主题与尺寸。
-
flex-direction决定主轴方向且独立于书写方向,常见值为row、row-reverse、column、column-reverse;flex-wrap控制换行,默认nowrap,wrap才启换行,二者共同影响交叉轴及align-items/align-content行为。
-
JavaScript通过navigator.onLine属性和online/offline事件检测网络状态,但仅反映浏览器连接认知而非真实可达性;需结合fetch探测等增强验证。
-
图片加载失败时onerror不触发是因为跨域未声明,需设img.crossOrigin='anonymous'并服务端配CORS头;预加载应分批+decode()防卡顿;Texture销毁须等引用释放;WebP兼容性需运行时检测而非仅看后缀。
-
<marquee>不支持border-radius因其非标准、盒模型未定义且被主流浏览器废弃;需用div+@keyframes实现:外层设overflow:hidden和border-box,内层用transform:translateX()动画。
-
答案是构建无服务器JavaScript应用需依托FaaS与BaaS,以事件驱动、自动伸缩为核心。首先选择AWSLambda等云平台及ServerlessFramework等工具,编写如处理HTTP请求的函数,并通过APIGateway触发;接着集成DynamoDB等无服务器数据库实现数据存储;最后将前端部署至Netlify或S3+CloudFront,通过fetch调用函数接口,完成前后端分离的全托管架构。
-
WebComponents通过CustomElements、ShadowDOM和HTMLTemplates实现原生组件化。CustomElements允许创建带行为的自定义标签,需继承HTMLElement并用customElements.define注册,标签名必须含短横线。ShadowDOM通过attachShadow提供隔离的DOM和样式,mode为'open'可访问shadowRoot,'closed'则不可,内部使用<slot>分发内容。HTMLTemplates定义不渲染的模板结构
-
主轴空间分配由flex-grow、flex-basis和flex-shrink协同控制,结合gap与min-width可实现灵活稳定的布局。
-
JavaScript操作浏览器历史需谨慎使用window.history:pushState新增历史记录,replaceState替换当前记录;popstate仅响应API触发的导航,需手动处理首屏状态;back/forward/go易引发异常,应优先使用路由库;服务端须配置fallback,确保URL、历史栈、UI、服务端路径四者同步。