-
选SSE还是WebSocket取决于通信方向:单向推送用EventSource,双向交互必须用WebSocket;前者轻量但仅服务端推,后者支持全双工且兼容性更优。
-
模块化权限控制的核心是在查找、加载、注册三阶段层层拦截:查找时用MetaPathFinder静默拒绝,加载时用自定义Loader执行前校验,注册后动态冻结模块,越早拦截越安全可控。
-
<p>HTML模板中只能用<!---->注释,因解析器仅识别该格式;其他如//或//会被当作普通文本显示,可能污染DOM、破坏结构或引发XSS风险。</p>
-
WebWorkers无原生事件模型,需用postMessage+状态机+消息路由模拟事件调度:主线程捕获真实事件并发送带type和payload的消息,Worker内用Map实现简易事件分发器,支持多阶段反馈与ID关联的Promise化封装。
-
长列表滚动中节点复用不当易致OOM,关键在守住三道防线:视图生命周期可控、数据绑定轻量、资源加载受控;须确保ViewHolder完全复用、图片加载带尺寸约束与内存复用、及时切断强引用链,并辅以监控兜底。
-
HTML5<video>标签无法提升硬件解码能力,仅触发浏览器调用底层解码器;硬解依赖浏览器内核、系统驱动与硬件协同,需用MediaCapabilities.decodingInfo()实测而非canPlayType()判断。
-
WeakRef不能直接构成LRU缓存,必须手动维护元数据结构实现访问排序、容量控制和淘汰逻辑;@lru_cache使用强引用且不支持弱引用清理,WeakValueDictionary无访问顺序,真正可行的是Map+WeakRef+FinalizationRegistry协同方案。
-
EyeDropperAPI必须由用户手势(如click)直接同步调用,返回Promise:成功时resolve{sRGBHex},取消时rejectAbortError;仅Chromium111+支持,需检测存在性并降级。
-
grid-template-areas必须配合display:grid容器使用,每组引号代表一行,区域名需与grid-area值完全一致;Header/Full/Footer三行布局需设height:100vh和min-height:0才能实现Main自适应与滚动。
-
浏览器对#FF6B6B等未声明色彩空间的颜色值按默认策略解释:Safari倾向映射到display-p3,Chrome/Firefox多走sRGB,导致同一数值在Safari更粉、Chrome偏橙、Firefox略灰;唯一可控方式是用color()函数显式声明色彩空间(如color(srgb10.41960.4196))并前置fallback。
-
<p>在WSL2中配置Linux环境进行HTML+CSS开发,首先启用WSL2并安装Ubuntu等发行版,运行wsl--install后重启并设置用户;接着更新系统包sudoaptupdate&&sudoaptupgrade;推荐使用Python3内置服务器,在项目目录执行python3-mhttp.server8000,或通过Node.js安装http-server实现静态服务;文件编辑建议使用VSCode配合Remote-WSL扩展,避免直接通过Windows修改WSL文件
-
虚拟滚动和下拉刷新可以共存,关键在于分离数据加载与视图渲染逻辑:下拉刷新重置数据源并更新,虚拟滚动仅根据当前数据动态渲染可视区域,二者职责分明即可实现流畅响应体验。
-
:empty仅匹配DOM中无任何子节点(含文本节点)的元素,换行、空格、注释均使其失效;它探测结构为空而非视觉为空,适用兜底样式或隐藏真正空容器,但不支持替换元素、contenteditable元素及:blank伪类。
-
&符号在Less中代表当前嵌套路径的完整祖先选择器序列,而非简单拼接;它绑定于所在规则块的直接父级,不支持字符串切片或运行时解析。
-
原生CSS嵌套是纯CSS语法特性,需写在<style>或.css文件中,依赖Chrome116+/Firefox117+/Safari17.4+;失效主因是浏览器版本低、未用&或@nest显式标记、父选择器无效。