UI5加载时的library-preload.json文件

举报
Jerry Wang 发表于 2022/04/25 12:33:42 2022/04/25
【摘要】 library-preload.json文件的作用,在Jerry的博客How I do self-study on a given Fiori control – part 1里有介绍:In productive use, for performance reasons, all controls of a library are also available in the library-...

library-preload.json文件的作用,在Jerry的博客How I do self-study on a given Fiori control – part 1里有介绍:

In productive use, for performance reasons, all controls of a library are also available in the library-preload.json file, which is loaded initially (and can be loaded asynchronously). It contains each control/module as a string, which is then parsed into JavaScript on demand. So this avoids many HTTP requests and thus improves performance.

以上文字来自SAP UI5开发人员:Kunz Andreas:

我试着简单翻译一下:

在productive使用场景下,处于性能考虑,一个SAP UI5应用的单个library里包含的所有控件实现会被打包成单个的文件library-preload.json中去,可以在SAP UI5应用bootstrap阶段加载或者按需进行异步加载。Library-preload.json以字符串的格式包含了每个control/module的实现,可以被解析成JavaScript对象在SAP UI5框架里使用。这种打包成单个库文件然后加载的方式,减少了HTTP请求的数量,提高了性能。

上图是按照Jerry文章一个用于SAP UI5学习的脚手架应用,没有任何后台API的依赖里介绍的方法,开发了一个只包含button控件的最简单的SAP UI5应用,加载之后在Chrome开发者工具里观察到的网络请求,其中包含四个library-preload.js的加载:

Spartacus打包之后,以库的方式发布到npmjs.com上。

Spartacus库主要有三个实体组成:core,Storefront和styles. 其中Storefront包含了用户肉眼可见的,组成Storefront外观的UI组件,客户可以重用和增强这些组件。Core则包含了Spartacus的控制逻辑,用户通过Angular依赖注入的机制,可以开发自己的服务类,然后注入到core框架之中。Styles包含了Spartacus的界面样式实现,客户可以对这些样式进行定制化,或者用自开发的样式来覆盖标准样式。

以前Accelerator同Storefront的比较时已经提到过,客户基于Spartacus库文件进行属于自己的Storefront开发,并不会直接修改Spartacus发布的源代码。客户的二次开发代码,和Spartacus库文件是一种松耦合关系。客户升级Spartacus版本,在绝大多数情况下都不会影响到现在的二次开发代码。那么所说的“绝大多数情况下”,具体是指什么呢?这就要从Spartacus的版本管理机制说起。

同绝大多数流行的框架和库一样,Spartacus的版本管理也采取了所谓语义化版本的机制,版本号由主版本号,次版本号和修订版本号共同组成,中间由小数点分隔开。

主版本号的升高,用于引入无法向后兼容的变更或颠覆性的更新。无法向后兼容的变更,是指Spartacus升级之后,之前基于低版本编写的二次开发代码,需要人工调整后才能继续工作。颠覆性的更新,比如Spartacus 3.0,首次支持B2B特性。

次版本的增加:用于引入新功能,并且版本更新之后,已有的二次开发代码不需任何调整仍然能够正常工作。源代码重构,性能优化等不属于bug修复的修改,也通过此版本号引入。

修订版本:主要用于发布bug的修复.

Spartacus的修订版本发布以周为单位,确保使用过程中发现的bug能尽早得到解决。次版本的升高以月为单位,而主版本的更新,可以参考SAP官方路线图网站上的声明。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。