· 应用驱动的引擎评估(admin + Windows XP 复盘)
这份文档的视角与 13 · 能力缺口分析 不同: 13 是「对标主流引擎,哪些该做而没做」;本文是「两个真实应用跑下来,引擎在哪些地方真的 扛住了、在哪些地方真的把人卡住了」。前者靠对比清单,后者靠实践证据。
证据来源:
ice-web-components的案例 (六页后台examples/admin.html、全屏桌面examples/windows-xp.html含 8 个子应用、 掌机examples/arcade.html两块卡带),以及它们配套的 5 套浏览器回归(170 项断言) 与 582 条组件库单测。 复盘的引擎版本:1.4.1;文档写于 2026-09-12(当天补了 §2.1 的游戏场景对照组)。
两个案例是什么量级
| 案例 | 内容 | 规模 |
|---|---|---|
| admin(后台) | 仪表盘 / 订单 / 履约 / 商品 / 客户 / 设置 六页;侧边栏二级菜单、面包屑、抽屉、弹窗、下拉、级联、 日期、自动完成、气泡确认、消息通知、引导、分栏、图片预览、瀑布流式页面布局 | 单页 canvas,页内控件数百 |
| Windows XP(桌面) | 壁纸(程序化生成)、桌面图标、任务栏 + 托盘时钟、开始菜单、可拖动/最小化/最大化/缩放的窗口;7 个应用:我的电脑、我的文档、记事本、画图、扫雷、IE(真的 fetch 网页)、显示属性 | 单页 canvas,多窗口叠加,扫雷高级 30×16 |
两者的共同点:没有 DOM 组件兜底,所有像素、命中、焦点、滚动、弹层都由引擎 + 组件库完成。
结论速览
| 能力维度 | 判定 | 关键证据 |
|---|---|---|
| 渲染原语与绘制质量 | ✅ 足够 | 矩形/圆/椭圆/多边形/路径/折线/文本/图片 + 变换 + 子树不透明度 + 阴影;XP 的窗口边框、扫雷格子、画图笔迹都靠它 |
| 事件与命中 | ✅ 足够 | hitTest + 事件总线 + pointer/touch/wheel 归一化 + 拖拽指针捕获;分栏、窗口拖动、落笔、点格子全通 |
| 浮层体系(工具层) | ✅ 很好 | 弹窗/抽屉/下拉/气泡/引导聚光/图片预览共用 ICEOverlayManager,「永远在最上 + 不参与业务命中」只实现一次 |
| 裁剪与滚动 | 🟡 够用但要自己搭 | clipChildren 是引擎给的(滚动视口、cover 裁剪、水印裁切都靠它);但滚动本身是组件级实现(ICEScrollPane),嵌套滚动 / scrollIntoView 要各写一遍 |