从一个按钮看懂 SAPUI5 应用启动背后的运行机制
最近做 SAP Fiori Elements 和 SAP UI5 项目时,经常会碰到一个看似很小、实际却很关键的问题,浏览器到底是怎样把一个普通 HTML 页面变成 SAPUI5 应用的。很多问题都藏在这个入口里,比如为什么resources/sap-ui-core.js加载失败,为什么控件库没加载导致sap.m.Button或sap.ui.commons.Button找不到,为什么页面背景没有 SAP Fiori 风格,为什么本地打开 HTML 文件能看到空白页但没有任何控件。SAPUI5 的特殊之处在于,它不是传统后端页面技术。ABAP Web Dynpro 或经典 Dynpro 更像是后端主导页面生命周期,而 SAPUI5 是运行在浏览器里的客户端 Web UI 库。OpenUI5 官方也把它描述为一个 JavaScript UI Framework,用来构建企业级 Web 应用,并提供开放标准、丰富控件和响应式能力。也就是说,SAPUI5 应用交付到浏览器后,真正创建控件、绑定事件、渲染 DOM、应用主题样式的主战场是在前端。(openui5.org)一个 SAPUI5 应用从 HTML 页面开始从文件形态看,最小的 SAPUI5 应用可以只是一个 HTML 页面。它里面包含浏览器需要理解的普通 HTML 结构,也包含加载 SAPUI5 runtime 的script标签。随着项目规