前端虚拟滚动:从DOM瓶颈到视口计算的技术突围
一个包含20,000行数据的简单列表,能让浏览器内存占用飙升超过700MB,DOM检查器甚至无法正常工作。这不是危言耸听,而是前端开发者在处理大数据量列表时真实遇到的困境。 ...
一个包含20,000行数据的简单列表,能让浏览器内存占用飙升超过700MB,DOM检查器甚至无法正常工作。这不是危言耸听,而是前端开发者在处理大数据量列表时真实遇到的困境。 ...
一道经典的前端面试题是这样问的:CSS选择器是从左到右匹配,还是从右到左匹配?标准答案是"从右到左"。但如果追问一句"为什么",大多数面试者只能给出模糊的解释——“因为这样更快”。至于快多少、快在什么地方、有没有例外,则往往语焉不详。 ...
2011年,当一个聊天应用需要显示对方"正在输入"的状态时,开发者不得不让客户端每隔几秒向服务器发一次请求——问一句"有新消息吗?",服务器回答"没有",然后重复。这种愚蠢的对话在HTTP的世界里持续了整整十五年。 ...
你可能在某个午后兴冲冲地将项目中的import _ from 'lodash'改成了import { debounce } from 'lodash-es',期待着构建产物大幅瘦身。然而,当你打开webpack-bundle-analyzer,却发现那个庞大的lodash依然盘踞在bundle中,仿佛对你的优化努力嗤之以鼻。 ...
多标签页的协调困境 现代 Web 应用越来越复杂,用户经常在多个标签页中打开同一个应用。一个在线文档编辑器可能被同时打开在三个标签页里;一个股票交易网站可能同时运行在多个窗口中。这些场景都面临同一个问题:如何让多个独立的 JavaScript 执行上下文协调工作? ...
1995 年 5 月,Brendan Eich 在网景公司的十天内完成了 JavaScript 的设计与实现。他面临一个关键决策:采用传统的类继承模型,还是更灵活的原型继承模型?最终,他选择了后者——受 Self 语言启发的原型继承机制。这个决定深刻影响了此后三十年 JavaScript 的演进轨迹。 ...
2010年,Ethan Marcotte提出了响应式网页设计的概念,Media Queries从此成为前端开发者的标配工具。然而,这套基于视口的响应式方案存在一个根本性的盲点:一个组件无法感知自己所在的容器空间。 ...