-
密码不可跨域明文传递,须用WebCryptoAPI的PBKDF2在前端加盐派生密钥(iterations≥100000、SHA-256、后端下发盐),导出十六进制凭证供后端校验,全程内存操作并立即清空原始密码。
-
Nunjucks原生不支持{%include"xxx"with{...}%}语法,但可通过自定义render过滤器安全、递归地传递上下文数据,实现类似React的props下传效果。本文详解替代方案、代码实现及关键注意事项。
-
签名生成本质是JS调用crypto.subtle.sign()执行HMAC-SHA256哈希,需将payload转Uint8Array、secret导入为CryptoKey,输出ArrayBuffer再转hex;常见不一致源于payload序列化、secret隐藏字符及编码不统一。
-
安全使用env()需启用viewport-fit=cover元标签,配合calc()和max()/min()回退,优先适配top/bottom,安卓左右值不可靠,真机验证必不可少。
-
小元素在行内布局中易挤在一起,因默认inline元素受字体基线和vertical-align:baseline影响,导致垂直对齐不一致;推荐用inline-block+vertical-align或flex+gap统一控制间距。
-
用contain:layoutpaint或contain:strict可实现局部重绘,但需容器尺寸稳定、子元素不越界且浏览器支持;contain:layoutpaint最常用,strict隔离最强但要求明确尺寸和定位约束。
-
Sass5.0+废弃@import是因其破坏模块化:全局作用域导致命名冲突、重复编译、无法选择加载、无命名空间;@use实现作用域隔离,@forward用于封装接口而非简单转发。
-
浮动元素底部不齐是正常行为,伪等高需用padding-bottom+负margin-bottom配合overflow:hidden裁剪实现,IE6/7需zoom:1触发hasLayout,现代项目应优先使用flex或grid。
-
CSS-in-JS中媒体查询应直接用模板字符串写入,如@media(min-width:${tablet}),使用字符串常量而非动态表达式以保障服务端渲染与样式提取正确。
-
现代JavaScript项目应选对工具链:新项目用Vite(启动快、热更新准),旧Webpack项目或需IE11/UMD/动态require则留用Webpack;vitebuild默认用Rollup处理define、public目录和hash文件名;部署前须检查base路径、outDir与Nginx配置一致、HTML中script标签是否由Vite自动注入。
-
不能只改后缀,因SCSS解析器更严格:需同步更新文件后缀、引用路径及做最小语法适配,否则易致编译失败或样式失效。
-
Node.js基于V8引擎实现服务端JavaScript运行,采用事件驱动、非阻塞I/O模型,适合高并发实时应用;其核心架构包括单线程事件循环、libuv异步处理、CommonJS模块系统;常见模式有MVC、分层、微服务及中间件管道;技术栈涵盖Express/Koa/NestJS框架、npm/yarn包管理、PM2进程管理及多种数据库支持;适用于I/O密集型场景如API网关、实时通信,但不擅长CPU密集任务,需借助子进程或线程池优化。
-
必须设置draggable="true"才能触发原生拖拽事件;dragstart中需用dataTransfer.setData()写入数据;drop前必须在dragover中调用preventDefault();推荐用transform:translate定位便签以提升性能。
-
本文讲解为何HTML中直接使用FontAwesome的Unicode(如)无法显示图标,并提供添加UTF-8编码声明这一关键解决方案,同时说明字体加载机制与实际应用注意事项。
-
IE10必须用display:-ms-flexbox替代display:flex,且需配套-ms-flex-pack、-ms-flex-align等旧属性;flex缩写无效,须拆解为-ms-flex-positive/-negative/-preferred-size;兜底推荐display:table。