-
Flex容器设为100vh后文字不居中,需同时设置display:flex、justify-content:center和align-items:center,并重置html与body的margin、padding及height;移动端优先用100dvh替代100vh以避免地址栏影响。
-
真正有效的优化不是“给prototype加WeakRef”,而是识别并切断原型链上下游之间不该存在的强引用依赖,如用WeakKeyDictionary替代类级强注册表、在Proxy/Descriptor中用WeakRef封装目标对象、规避对不可弱引用类型的误用,并按内存水位降级类级别缓存。
-
闭包陷阱在单页应用中表现为内存泄漏,即闭包意外捕获大对象(如组件实例、DOM节点)且被长期存活的全局对象持续引用,导致路由跳转后对象仍驻留堆中。
-
viewport必须置于<head>最前面且配对width=device-width与initial-scale=1.0,禁用user-scalable=no违反可访问性,溢出问题需检查CSS布局而非仅依赖viewport配置。
-
ServiceWorker的install和activate事件分别对应installing→installed和activating→activated状态阶段,install阶段缓存资源并需waitUntil确保完成,activate阶段清理旧缓存且不可在install中执行,状态流转受页面生命周期和skipWaiting()控制。
-
reverse()会直接修改原数组,是原地操作;需用[...arr].reverse()或arr.slice().reverse()创建新数组副本,避免副作用。
-
必须在第一行写<!DOCTYPEhtml>,否则浏览器进入怪异模式导致布局、盒模型、CSS解析不一致;它不是标签而是解析指令,前面任何字符(空格、注释、BOM)都会触发兼容模式。
-
在Java后端生成HTML5页面,本质是通过服务端代码动态构建符合HTML5标准的网页内容,并将其响应给客户端浏览器。虽然Java本身不直接“实现”HTML5(HTML5是前端标记语言),但可以通过多种方式生成HTML5结构的页面。以下是几种常见且实用的方法。1.使用模板引擎渲染HTML5页面模板引擎是最常用的方式,它将Java数据与HTML模板结合,输出完整的HTML5页面。常用的模板引擎包括Thymeleaf、Freemarker、JSP和Velocity。以Thymeleaf为例:
-
CSS标准中不存在random()函数,因其声明式、无状态特性要求样式可预测与高效渲染;真随机需用JavaScript动态设置CSS自定义属性实现。
-
模板字符串是支持多行、嵌入表达式、无需转义的字符串字面量,用反引号定义,${...}中可放任意表达式但非语句,天然支持换行但需注意缩进,结合标签函数可扩展功能。
-
basehref必须是绝对URL或以/开头的根相对路径,否则标签被静默忽略导致404;须置于<head>最前且唯一;仅影响HTML中纯相对路径(如logo.png),不影响JS动态请求、CSS@import等。
-
type="hidden"是唯一真正隐藏且参与提交的HTML5表单字段方式;它不渲染、不聚焦、不触发事件,但会随表单提交,而display:none等仅视觉隐藏仍参与验证和自动填充。
-
懒加载是按需触发资源请求,非渲染完统一加载;loading="lazy"有兼容性差、无法监听状态等缺陷,推荐用IntersectionObserver实现,需注意保存引用、设置rootMargin、加载后取消观察及错误处理。
-
Header__nav是元素(Element),其中Header是块(Block),nav是其直属元素,不可跨上下文复用;需复用时应定义独立Block如nav、user-menu。
-
discarded状态无法被JavaScript捕获,唯一可靠保存时机是freeze事件和pagehide且persisted===true;还原需结合pageshow.persisted、localStorage时间戳及navigation类型综合判断冷启动与热恢复。