Angular 支持大多数常用浏览器,包括下列版本:
Chrome | Firefox | Edge | IE | Safari | iOS | Android | IE mobile |
---|---|---|---|---|---|---|---|
最新版 | 最新版 | 14 | 11 | 10 | 10 | Marshmallow (6.0) | 11 |
13 | 10 | 9 | 9 | Lollipop (5.0, 5.1) | |||
9 | 8 | 8 | KitKat (4.4) | ||||
7 | 7 | Jelly Bean (4.1, 4.2, 4.3) |
Angular 在持续集成过程中,对每一个提交都会使用 SauceLabs 和 Browserstack 在上述所有浏览器上执行单元测试。
填充库 (polyfill)
Polyfills
Angular 构建于 Web 平台的最新标准之上。 要支持这么多浏览器是一个不小的挑战,因为它们不支持现代浏览器的所有特性。
你可以通过在宿主页面 (index.html
) 中加载填充脚本 (“polyfills”) 来加以弥补,这些脚本实现了浏览器缺失的 JavaScript 特性。
<script src="node_modules/core-js/client/shim.min.js"></script>
要运行 Angular 应用,某些浏览器可能需要至少一个填充库。除此之外,如果要支持某些特定的特性,你可能还需要另一些填充库。
下表将帮你决定加载哪些填充库,具体取决于目标浏览器和要用到的特性。
这些建议的填充库是运行完整 Angular 应用所需的。 你可能还会需要另一些的填充库来支持没有出现在此列表中的哪些特性。 注意,这些填充库并没有神奇的魔力来把老旧、慢速的浏览器变成现代、快速的浏览器,它只是填充了 API。
强制性填充库
Mandatory polyfills
下表是填充库对每个支持的浏览器都是需要的:
浏览器(桌面和移动) | 需要的填充库 |
---|---|
Chrome, Firefox, Edge, Safari 9+ | None |
Safari 7 & 8, IE10 & 11, Android 4.1+ | |
IE9 |
可选浏览器特性的填充库
Optional browser features to polyfill
有些 Angular 特性可能需要额外的填充库。
例如,动画库依赖于标准的 web 动画 API,目前它只在 Chrome 和 Firefox 上可用。你可能需要一个填充库来在其它浏览器上使用动画功能。
下列特性可能需要更多填充库:
特性 | 填充库 | 浏览器(桌面和移动) |
---|---|---|
除 Chrome 和 Firefox 外的所有,但不支持 IE9 | ||
除了 Chrome、Firefox、Edge、IE11 和 Safari 10 外的所有浏览器 | ||
在 SVG 元素上用 NgClass | IE10, IE11 | |
用 Http 发送和接受二进制数据 | IE 9 |
建议的填充库
Suggested polyfills
下表中是用来测试框架本身的填充库,它们是应用程序的优质起点。
填充库 | 授权方式 | 大小* |
---|---|---|
ES6 | MIT | 27.4KB |
classList | 公共域 | 1KB |
Intl | MIT / Unicode license | 13.5KB |
Web Animations | Apache | 14.8KB |
Typed Array | MIT | 4KB |
Blob | MIT | 1.3KB |
FormData | MIT | 0.4KB |
* 这些指标测量的是最小化 (minify) 并且 gzip 过的代码,使用 closure compiler 计算出的结果。