Angular 源码翻译之platform-brower package

概要:
该模块内容保存了angular如何与宿主环境(浏览器)相互通信,平台模块的功能包括渲染(决定展示什么内容与内容如何展示),多任务(web workers),URLs/html/style的安全处理(探查它们的不安全书写)与location管理(浏览器中展示的URL)
我们已经了解了core模块如何提供渲染API,但是core中不包含渲染具体实现且没有涉及DOM,所有angular中其他的需要内容渲染的部分都需要该API接口并以来其具体实现来保证内容被展示出来(展示意思是依赖平台变化),注意这些render仅仅是渲染到DOM adapter中(以及存在的DOM适配器),但是所有建立在core的核心功能仅仅能接触到render api,而不直接操作DOM。
angular提供了5个platform包
platform-browser(运行在浏览器主UI线程,使用线下的模板编译器)
platform-browser-dynamic(运行在浏览器主UI线程,使用线下的运行时模板编译器)
platform-webworker(运行在web worker,使用线下的模板编译器)
platform-webworker-dynamic(运行在web worker,使用)?????
platform-server(运行在服务端,可以使用静态模板编译器或者运行时模板编译器)
一些和platform有关的通用功能在platform-brower中并且被其他platform package引用,因此platform-brower比其他platform包大得多。在这个章节我们将探索platform-brower并在子章节中涉及其他platform package。

Platform-Brower内包含了运行在UI主线程时应用代码如何与浏览器交互并假设离线模板提前用来生成模块工厂。对于生产环境的使用,platform-brower可能是platform的选择,它可以保证最快速度展现(不需要浏览器内置模板编译)与最小size(Angular模板编译器不需要下载到brower)
The Platform-Browser package does not depend on the Compiler package since it
assumes compilation has occurred ahead-of-time (AOT) using Compiler-CLI, the
command-line interface that wraps the Compiler package.相反Platform-
Browser-Dynamic会直接从Compiler package中引入-例如,


Angular 源码翻译之platform-brower package_第1张图片
8.png

每个线程只有一个platform实例(浏览器主UI线程或者web worker线程).多个应用会运行在同一个线程中,这些应用汇与同一个platform实例交互。


Angular 源码翻译之platform-brower package_第2张图片
9.png

Platform-Browser 可用API
platform-brower API可以被划分为以下几个功能模块:
浏览器相关,DOM,安全

DOM相关API如下:


Angular 源码翻译之platform-brower package_第3张图片
10.png

你可能感兴趣的:(Angular 源码翻译之platform-brower package)