天天看點

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 視圖的加載邏輯分析

我們再來看看另一個 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 視圖的加載邏輯分析

正确的 path:

SAP UI5 應用 XML 視圖的加載邏輯分析

錯誤的 path:

SAP UI5 應用 XML 視圖的加載邏輯分析

命中:

SAP UI5 應用 XML 視圖的加載邏輯分析

再看出問題的應用:

SAP UI5 應用 XML 視圖的加載邏輯分析

找到問題了:大小寫不比對。

SAP UI5 應用 XML 視圖的加載邏輯分析

這個 c 改成 C 後,問題消失:

SAP UI5 應用 XML 視圖的加載邏輯分析