SAP UI5 基于 MVC 架构,一个典型的 SAP UI5 工程蕴含了 controller,view,component和 html 这几种不同类型的资源文件:

这种资源文件细粒度的拆分,其长处是每个文件职责清晰,合乎开发人员对 MVC 传统架构的意识,因此在我的项目开发过程中,有助于SAP UI5 开发人员,在正确的地位编写正确的代码。

然而,开发完结后,切换到生产模式运行时,这种拆分形式会给SAP UI5的性能造成一些消极的影响。

每个资源文件须要一个独自的网络申请去加载。

以 Jerry 的一个用于SAP UI5学习的脚手架利用,没有任何后盾API的依赖 为例,其加载的网络申请如下图所示:

和很多其余的前端框架一样,SAP UI5 也引入了 bundling 机制,将这些独自的开发资源,打包成一个整体,文件名为 component-preload.js.

Component-preload.js绝不是简略地将SAP UI5我的项目工程里各个文件的内容单纯地拼接进去。在内容拼接根底上,还施加了Minification和Ugification的过程。

Minification:删除代码中的正文和空行,空白,以减小最终生成的Component-preload.js的尺寸。

Ugification:代码混同,将原始代码中的变量名转换成单个字符,从而进一步缩小Component-preload.js的尺寸。

看一个 SAP UI5 Component-preload.js的具体例子。

在SAP UI5我的项目文件里短少Component-preload.js时,我的UI5脚手架利用,总共发动了43个网络申请,页面加载工夫为 11.95秒:

而通过 SAP UI5 打包工具生成Component-preload.js后,加载该利用一共用了32个网络申请,缩小了11个申请,页面加载工夫缩小到10秒。

最初,SAP UI5 的 Component-preload.js 文件如何生成呢?网络上提供了很多工具,Jerry 这篇文章介绍了我感觉相对来说步骤比较简单的一种方法:

一个好用的 SAP UI5 本地打包(build)工具

更多Jerry的原创文章,尽在:"汪子熙":