-
ServiceWorker未触发waiting状态的主因是HTTP缓存导致浏览器未识别脚本变更,需通过添加时间戳注释、禁用强缓存解决;提示更新应在reg.waiting为true时触发,而非controllerchange;activate阶段须谨慎清理缓存并确保fetch兜底;WebView环境应避免无条件skipWaiting,改用静默更新策略。
-
JavaScript中this绑定优先级为:new绑定最高,其次显式绑定(call/apply/bind),最后隐式绑定;new调用时this总指向新实例,显式绑定覆盖隐式绑定,隐式绑定仅在无new和显式绑定时生效。
-
lvh/svh是CSS新增视口单位,lvh表示不考虑软键盘的最大可用高度,svh表示键盘弹出时的最小可用高度;相比100vh,它们原生响应键盘状态,避免iOS底部fixed元素被遮挡及安卓高度突变问题。
-
组合式API的核心是按业务域封装逻辑单元,而非按选项类型拆分;应将相关状态、方法、副作用收进独立的useXxx()函数,让setup仅负责组装调用与解构返回值。
-
Angular17+推荐使用对象字面量形式({next,error,complete})替代回调函数式subscribe(),以提升类型安全与可维护性,本文详解迁移步骤、代码示例及常见陷阱。
-
模块加载器不支持data:协议脚本,因其无稳定模块ID、无法参与依赖分析、违反同源与CSP策略;可行替代方案包括手动script注入、newFunction构造函数、预注册伪模块,或改用API配置+HTTPS加载。
-
能,但仅限于内联事件处理器中直接returnfalse时生效;现代推荐用event.preventDefault(),语义清晰且兼容异步流程。
-
最基础可靠的获取HTML页面方式是直接用浏览器打开HTML文件或通过本地服务器访问。file://协议适合静态页但禁用fetch等特性;Python内置服务器可模拟真实环境;curl/fetch适用于远程获取但受同源和JS渲染限制;关键在确保路径正确与脚本执行。
-
BEM本身不提升鲁棒性,但强制你做三件事——隔离作用域、显式声明依赖、拒绝隐式状态——这三点才是应对业务变更的真正防线。
-
HTML中无标准方式定义文档更新频率,meta标签如revisit-after和expires均非标准且被主流搜索引擎忽略;实际影响抓取的是Last-Modified、ETag响应头及sitemap中的lastmod字段。
-
HTML无法直接操作蓝牙键盘,因其仅为标记语言;浏览器通过document.addEventListener('keydown')统一处理输入事件,不区分设备类型;真正与蓝牙交互需依赖WebBluetoothAPI(仅限HTTPS、用户触发、BLEHID设备且Chrome支持),或原生应用。
-
闭包是JavaScript中函数与其词法作用域的组合,内部函数能持续访问外部函数变量,因作用域链在创建时固化且变量不被回收。
-
必须开启encodedInsertableStreams:true,否则createEncodedStreams()报错或返回undefined;该选项是RTCPeerConnection初始化时的硬性开关,影响新sender/receiver,不兼容Safari,需HTTPS环境。
-
MessageChannel仅用于安全高效传递数据,不支持跨域DOM直接操作;需父页面分发端口,发送端节流防洪峰,接收端防抖保活,配合心跳与错误处理实现链路自愈。
-
语义正确、可访问的注册表单需每个输入控件用显式label[for]关联,name与后端一致,type按语义选用(如email、password),required和minlength仅作前端辅助校验,后端必须重复验证,提交失败时回填value保留用户输入。