京东云_香港月付虚拟主机_新用户

2021-05-04 11:00

在这篇博文中,大数据库,我想让你对UI5演进项目的基本部分有更多的了解:模块化核心。这是关于将核心转换为未来证明基础,组织java脚本模块,并执行适当的依赖性管理,使应用程序能够以最少的资源量运行。当UI5启动时:我们自己开发了基于Globals的模块加载器,使用同步请求在需要时加载所需的JavaScript模块。我们通过引入预加载的概念来克服同步加载。通过预加载,我们解决了两个问题:减少了文件数量并启用了异步加载。尤其是在http/1.1场景中,加载更少的文件对于不受域限制是非常重要的。当浏览器的主线程保持畅通时,关于云服务器,异步加载就说明了这一点。但所有这些改进都只是对核心进行了封装。我们觉得有必要对内核进行重新创新,使其更符合未来,更接近标准。

在模块化内核中,我们基本上解决了以下主题:积木的集合、通用JavaScript、异步API和异步加载。

积木的集合和通用JavaScript

积木的集合和通用JavaScriptJavaScript正致力于将模块拆分为细粒度的模块,并将它们从DOM和jqueryapi中解放出来,以允许在无DOM的环境中使用它们。

砖块集合强制使用类似AMD的模块语法来声明模块及其依赖项(AMD代表异步模块定义)。这可以确保正确声明依赖项,并且不再作为全局引用,这样依赖项分析就可以检索所使用的模块。它还确保声明模块和解析依赖项可以异步完成。

通用JavaScript允许将代码执行从客户端运行时转移到构建时或服务器运行时。因此,前者jQuery.sap文件模块已经被重构成标准的类似AMD的模块。对于大多数jQuery,对jQuery的依赖关系已经被删除。许多实用函数,如jQuery.sap.uid,已外部化为单独的模块,例如sap/base/uid.js文件.

核心转型从1.54开始。对于1.56,团队努力将jQuery.sap文件模块化为几个类似AMD的模块。在1.58之前,类似AMD的模块都是纯私有的jQuery.sap文件API仍然是使用这些功能的标准方式。在1.58版本中,新模块将公开,并可供应用程序单独使用。对于遗留应用程序,我们引入了存根层。留茬层的职责是避免满载jQuery.sap文件出于兼容性原因而建立的模块。它通过模拟jQuery.sap文件模块,并在需要时加载后面的细粒模块。

相关UI5ers嗡嗡声#38:https://blogs.sap.com/2018/11/19/ui5ers-buzz-38-moduleization-of-the-sapui5-core/

更多关于适应核心模块化的细节可以在这里阅读:https://sapui5.hana.ondemand.com/#/topic/b8fdf0c903424c9191f142842323ae22

新模块API是jQuery.sap文件API替换可在此处阅读:https://sapui5.hana.ondemand.com/#/主题/a075ed88ef324261bca41813a6ac4a1c

异步加载和API

异步加载和API的主题是关于UI5模块加载器和相关API的创新,返利app可信吗,以加载库、组件、视图、片段、i18n文本等。这里的目标是避免UI5应用程序的阻塞行为。

与砖块集合类似,异步加载需要引入AMD类模块语法,该语法在加载模块、加载其依赖项和模块定义之间引入异步中断。这允许UI5模块加载器使用异步请求并在后台加载依赖项。

模块加载器的创新从UI5 1.54开始,分离了遗留模块加载器API(jQuery.sap.declare以及jQuery.sap.define)以及类似AMD的模块加载器API(sap.ui.define以及sap.ui.require文件). 类似AMD的模块加载器已经外部化为一个名为ui5loader的新模块。ui5loader仍然在1.54中同步工作,可以通过一个实验性的开关切换到异步模式。使用UI5 1.56,ui5loader已经发布。UI5加载器可以配置为模拟标准amdapi(define和require)以及通过配置启用异步加载。在未来,异步加载将成为默认的,但需要模块已采用使用新的AMD样模块语法。否则,遗留模块仍然可以运行,但需要加载同步加载程序,并回退到同步加载这些模块及其依赖项。

除了模块加载程序外,UI5还引入了新的异步API。这些是新的工厂函数,用于加载和创建库、组件、视图、片段、i18n文本等。新工厂的设计明确要求工厂功能,并且只异步工作。这允许正确的依赖关系确定,并且UI5可以在幕后引入加载优化以提高应用程序的性能。由于兼容性原因,旧工厂函数仍然可用,但已被弃用。

旧工厂替换的完整列表可在此处找到:https://sapui5.hana.ondemand.com/#/主题/491bd9c70b9f4c4d913c8c7b4a970833

结论

在UI5的最后一个创新周期中,模块化核心已经被显著重构,以提供更细粒度的模块,从而为应用程序创建最简单的捆绑包。这使得其中一些模块可用于无DOM环境,以支持从运行时执行到构建时的转换,从而建立新的异步api来克服浏览器的阻塞。这在加载资源和异步加载程序时非常方便,淘客小程序,异步加载程序可以提高模块加载的性能。所有这些步骤都在为UI5向网络标准靠拢做准备,使其能够利用最新的网络特性和开放源码社区开发的所有优秀内容。

我们需要你!

分享到:
收藏
相关阅读