且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SAP UI5 Bootstrap脚本的实现原理

更新时间:2022-09-08 18:08:49

Can I change the hard code ID?

In SAP help the UI5 bootstrap logic is explained: Bootstrapping: Loading and Initializing SAPUI5 in HTML Pages.


However, I was asSAP UI5 Bootstrap脚本的实现原理The answer is yes. For example the id below still works.SAP UI5 Bootstrap脚本的实现原理How to find the starting point for research?

Perform global search with the hard coded key word “sap-ui-bootstrap”, set a break point on search result, line 14893 below.SAP UI5 Bootstrap脚本的实现原理Refresh the application and break point is triggered. Through the comment of the function we can know that it is responsible to parse the bootstrap script node we define in index.html to determine the resource root.SAP UI5 Bootstrap脚本的实现原理SAP UI5 Bootstrap脚本的实现原理he logic of UI5 framework to determine whether a script tag is a “bootstrap” tag is done by three regular expression evaluation ( see variables reConfigurator, reBootScripts and reResources in below screenshot ).SAP UI5 Bootstrap脚本的实现原理Only if all the three evaluation fail, then framework will compare the script tag id with hard coded id “sap-ui-bootstrap” as last resort.

In my case, although I change the ID to “HelloWorld”, the second regular expression still succeed so resource root is successfully determined, no need to go the last ELSE-IF to compare the ID with hard coded value.SAP UI5 Bootstrap脚本的实现原理How are libraries specified in data-sap-ui-libs loaded by UI5 framework?

Another question is: I have specified all libraries I would like to use in attribute “data-sap-ui-libs” as pure string value, how is UI5 framework able to parse this string and loading library one by one?SAP UI5 Bootstrap脚本的实现原理Since the bootstrap script tag is successfully determined via regular expression, now its attribute are ready for parse.SAP UI5 Bootstrap脚本的实现原理he pure string value for libraries to be loaded is stored in oCfg.libs.SAP UI5 Bootstrap脚本的实现原理The code highlighted below parses the string and convert library name into an array: config.modules.SAP UI5 Bootstrap脚本的实现原理SAP UI5 Bootstrap脚本的实现原理hose libraries are loaded by function loadLibrary in line 39294 one by one:SAP UI5 Bootstrap脚本的实现原理