-
预加载(preload)是高优先级、立即下载当前导航必需资源,预取(prefetch)是低优先级、空闲时下载未来可能使用的资源;前者提升首屏确定性,后者优化后续交互速度。
-
accent-color可直接修改checkbox、radio、range和progress的用户交互高亮色;对select、textarea、text等无效,需手动样式覆盖。
-
Number.isFinite仅判断值是否为有限的number类型,不进行类型转换;字符串、布尔值、null等非number类型及Infinity、NaN均返回false,与全局isFinite的关键区别在于后者会隐式转换。
-
IIFE用于ES5及之前模拟块级作用域,解决var变量提升、循环闭包、全局污染等问题;通过自调用函数创建独立词法作用域,封装私有变量并暴露公共接口;ES6后被let/const和模块系统取代。
-
在async函数中,若在作用域内重复声明同名变量(如constdata),会遮蔽外部let声明的数组,导致后续调用push()时因data指向JSON对象而报错“pushisnotafunction”。
-
:not(:first-child)更可靠,因其只对非首子元素生效,避免首项溢出、适配任意容器、不依赖JS、兼容SSR,且不受父容器display类型限制。
-
按钮hover闪一下才变色是因为未在默认状态声明transition,且起始值不明确(如未设background-color或用transparent);应始终在非:hover状态写transition,并避免使用不可插值属性或display等不支持过渡的属性。
-
font-display是@font-face中控制字体加载期间文本显示行为的描述符,可避免FOIT白屏或优化FOUT体验;常用值包括swap(立即回退后替换)、fallback(短阻塞后回退)和optional(仅缓存命中时使用)。
-
本文详解如何用HTML、CSS和JavaScript实现一个线性(非环形)倒计时器,支持60秒自定义时长,进度条从左向右平滑填充,并在剩余10秒时变黄、5秒时变红、归零后保持红色。
-
JavaScript模块系统不改变引擎GC机制,但模块加载方式、作用域和导出引用显著影响对象生命周期:ES模块单例绑定延长变量存活时间;循环依赖与闭包隐式维持强引用;动态import提供可控回收机会;打包工具可能加剧隐式引用问题。
-
iOSSafari中window.innerHeight不准是因为地址栏/工具栏伸缩会动态改变该值,导致全屏容器闪动;应优先用visualViewport.height并监听其resize事件,旧版iOS则需orientationchange+延迟测量兜底。
-
HTML中渲染编辑历史应使用语义化<ol><li>结构,含<time>(ISO8601格式)、编辑人、摘要;版本对比入口用带ARIA属性的<button>;diff内容宜用带类名的<div>行块而非<pre><code>;所有交互需JS+API协同实现,并提供服务端降级。
-
应使用:enabled伪类选择实际可交互的表单控件,而非仅依赖元素名或[disabled]属性选择器;它动态反映浏览器运行时状态,适用于button、input(非hidden)、select、textarea等表单元素,不适用于div、span等非表单元素。
-
核心是分块写入+合理建模+复合索引设计:按500–1000条分批提交事务,主键用业务ID并扁平化字段,用['dept','status']等数组创建复合索引支持多维查询,写入前校验ID去重。
-
靠前端代码无法真正防止index.html被恶意修改,必须从服务器权限、部署流程和基础设施层设防:收紧文件权限至644、隔离可写目录并禁用脚本执行、使用低权限用户运行Web服务、WAF需防护HTML/JS/CSS等全部关联资源、静态站点应托管于只读对象存储。