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

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

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

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

SAP UI5 应用 XML 视图的加载逻辑分析_第3张图片

SAP UI5 应用 XML 视图的加载逻辑分析_第4张图片

SAP UI5 应用 XML 视图的加载逻辑分析_第5张图片

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

SAP UI5 应用 XML 视图的加载逻辑分析_第6张图片

Access to XMLHttpRequest at ' https://sapui5.hana.ondemand....' 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 视图的加载逻辑分析_第7张图片

使用 ajax 加载 xml view:
SAP UI5 应用 XML 视图的加载逻辑分析_第8张图片

SAP UI5 应用 XML 视图的加载逻辑分析_第9张图片

SAP UI5 应用 XML 视图的加载逻辑分析_第10张图片

正确的 path:

SAP UI5 应用 XML 视图的加载逻辑分析_第11张图片

错误的 path:
SAP UI5 应用 XML 视图的加载逻辑分析_第12张图片

SAP UI5 应用 XML 视图的加载逻辑分析_第13张图片

命中:
SAP UI5 应用 XML 视图的加载逻辑分析_第14张图片

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

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

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

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

你可能感兴趣的:(SAP UI5 应用 XML 视图的加载逻辑分析)