UI5参数:data-sap-ui-xx-waitfortheme和data-sap-ui-xx-componentpreload

UI5 parameters: data-sap-ui-xx-waitfortheme and data-sap-ui-xx-componentpreload

UI5 HTML-bootstrapper 有两个我不太明白的参数:

我查看了官方文档,没有得到一些直接的描述。

所以,我的问题:

  1. 我什么时候应该使用data-sap-ui-xx-componentpreload,它有什么好处?

  2. 我什么时候应该使用data-sap-ui-xx-waitfortheme,它有什么好处?

⚠️要事第一...

xx- 选项是实验性的。它们可能会在未来的 UI5 版本中被删除,或者它们的行为可能会以不兼容的方式发生变化。

选项sap-ui-xx-componentPreload

默认情况下,UI5 在创建 ComponentContainer 时自动请求应用 bundle Component-preload.js(例如通过 data-sap-ui-oninit="module:sap/ui/core/ComponentSupport")。

The bundle is generated by UI5 tooling for deployment 以便用户最终使用应用程序的 优化版本 。因此,避免在 index.html! 中使用 data-sap-ui-xx-componentpreload 发布独立应用程序,否则,用户最终会不必要地使用应用程序的未压缩、未捆绑的开发人员版本。

index.html (data-sap-ui-*) 中的选项不会影响典型的 Fiori 启动板 (FLP) 应用程序,因为 FLP 使用它自己的 HTML 页面。

使用 sap-ui-xx-componentPreload 仅对没有 Node.js 环境(无法使用 UI5 工具)的预览、测试或演示场景有意义,这样可以避免 404 错误。例如,SAP Web IDE 用于在 URL 中附加选项 sap-ui-xx-componentPreload=off,以便预览运行时不会出现 404 错误。

  • asyncsync 默认情况下取决于 sap-ui-preload / sap-ui-async 设置。
  • off 加载 Component.js 而不是 Component-preload.js 尽管有一个 ComponentContainer。

选项sap-ui-xx-waitForTheme

xx-waitForTheme 选项有助于避免 FOUC(Flash Of Unstyled Content),并在某些情况下减少同步 XHR。该选项告诉应用推迟某些任务,直到主题被加载和应用。

值(自 UI5 1.63 起)

  • init 等待主题 → 执行 Core 的初始化处理程序 (attachInit(<strong>fn</strong>)) → 呈现应用程序。
    如果某些控件过早地尝试通过 sap/ui/core/theming/Parameters.get synchronously (deprecated) 访问与主题相关的参数,请使用此选项。
  • rendering(之前是true直到1.62)先执行Core的init handler →等待主题→初始化渲染。

如果没有设置值,则立即执行Core的init和初始渲染,无需等待主题→FOUC。


有关更多选项和信息,请参阅 Configuration Options and URL Parameters 及其父主题。