SAP UI5 应用 XML 视图的加载逻辑分析

任务:分析 SAP UI5 root XML 视图的加载逻辑。

SAP UI5 应用 XML 视图的加载逻辑分析
鼠标放到 initiator 这一列上,找到调用栈的 UIComponent.js 的 createContent 方法:

SAP UI5 应用 XML 视图的加载逻辑分析
可以看到,这里的逻辑是,从 manifest.json 里解析出 root view 定义,然后实例化该视图。

SAP UI5 应用 XML 视图的加载逻辑分析

SAP UI5 应用 XML 视图的加载逻辑分析

SAP UI5 应用 XML 视图的加载逻辑分析

我们再来看看另一个 root 视图加载失败的 SAP UI5 应用:

SAP UI5 应用 XML 视图的加载逻辑分析

Access to XMLHttpRequest at 'https://sapui5.hana.ondemand.com/resources/sap/ui/demo/CombineLatest/Combine.view.xml' from origin 'http://localhost:3002' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

也成功解析出 root view 的名称了:

SAP UI5 应用 XML 视图的加载逻辑分析

使用 ajax 加载 xml view:
SAP UI5 应用 XML 视图的加载逻辑分析

SAP UI5 应用 XML 视图的加载逻辑分析

SAP UI5 应用 XML 视图的加载逻辑分析

正确的 path:

SAP UI5 应用 XML 视图的加载逻辑分析

错误的 path:
SAP UI5 应用 XML 视图的加载逻辑分析

SAP UI5 应用 XML 视图的加载逻辑分析

命中:
SAP UI5 应用 XML 视图的加载逻辑分析

再看出问题的应用:
SAP UI5 应用 XML 视图的加载逻辑分析

找到问题了:大小写不匹配。
SAP UI5 应用 XML 视图的加载逻辑分析

这个 c 改成 C 后,问题消失:
SAP UI5 应用 XML 视图的加载逻辑分析

更多Jerry的原创文章,尽在:"汪子熙":
SAP UI5 应用 XML 视图的加载逻辑分析

上一篇:SAP UI5 应用的中文乱码问题


下一篇:从bsp redirect到ui5_ui5