读书笔记:《数据可视化实战:使用D3设计交互式图表》 – [美] Scott Murray 著 / 李松峰 译

D3 是一个模块化的 JavaScript 库,用于数据可视化,将数据映射为图形。通过绑定数据、比例尺、事件监听器和过渡动画等功能,D3 提供了灵活且强大的工具来创建动态视觉效果。模块化设计让开发者可以按需加载功能,同时丰富的资源和社区支持为学习与实践提供了便利。

浏览器与 Node.js 的事件循环 (Event Loop) 有何区别?[转]

概述了 JavaScript 的异步原理,比较了浏览器与 Node.js 中 Event Loop 的差异。介绍线程与进程的概念、多线程模型及浏览器内核的多线程机制,详细解析了浏览器和 Node.js 的事件循环流程,包括宏任务与微任务的执行顺序、`setTimeout` 与 `setImmediate` 的区别、`process.nextTick` 的优先级等,最后总结了两者在任务队列执行时机上的不同。

使用事件委托提高性能

介绍了事件委托的概念及其在动态更新元素上的高效应用,通过将子元素的事件绑定到父元素上减少性能消耗。示例展示了如何使用 matches() 方法精确匹配目标子元素,同时说明了部分事件如 focus 和 blur 无法直接使用事件委托,但可用 focusin 和 focusout 替代。

DOM 节点的唯一性

解释了 DOM 节点无法同时存在于多个位置的问题,并通过 cloneNode() 方法创建节点副本以避免指针关联。示例展示了 appendChild() 导致节点位置变化的情况,以及使用 cloneNode(true) 深度克隆节点以实现纯粹添加元素的效果。