我通常在 下的清单中声明应用程序依赖的所有标准库sap.ui5/dependencies/libs
。
现在我应该在 bootstrap 参数中放入什么data-sap-ui-libs
,相同的库?如果我少放/多放会有什么影响data-sap-ui-libs
?它们有何不同?
附言。我在 SAP 的文档中找不到这一点,但请证明我错了。:-)
如果我少放/多放会有什么影响
data-sap-ui-libs
?它们有何不同?
我的建议是完全data-sap-ui-libs
删除index.html
。特别$metadata
是如果应用程序正在处理 OData,则尽早检索文档非常重要。请参阅下面的示例:
index.html
<head>
<script id="sap-ui-bootstrap"
src="https://ui5.sap.com/<version>/resources/sap-ui-core.js"
data-sap-ui-theme="sap_horizon"
data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"
data-sap-ui-async="true"
data-sap-ui-compatversion="edge"
data-sap-ui-excludejquerycompat="true"
data-sap-ui-resourceroots='{ "demo": "./" }'
data-sap-ui-xx-waitfortheme="init"
></script><!-- No data-sap-ui-lib -->
</head>
<body id="content" class="sapUiBody">
<div style="height: 100%"
data-sap-ui-component
data-name="demo"
data-height="100%"
></div>
</body>
Run Code Online (Sandbox Code Playgroud)
manifest.json
{
"sap.app": {
"dataSources": {
"myODataSource": {
"uri": "/odata_org/V2/Northwind/Northwind.svc/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "model/metadata.xml",
"annotations": [
"annotation0"
]
}
},
"annotation0": {
"type": "ODataAnnotation",
"uri": "annotation/annotation0.xml",
"settings": {
"localUri": "annotation/annotation0.xml"
}
}
},
"...": "..."
},
"sap.ui5": {
"dependencies": {
"minUI5Version": "1.108.4",
"libs": {
"sap.ui.core": {},
"sap.m": {},
"sap.ui.table": {},
"sap.ui.unified": {}
}
},
"models": {
"": {
"dataSource": "myODataSource",
"settings": {
"preliminaryContext": true,
"tokenHandling": false
},
"preload": true
}
},
"...": "..."
},
"...": "..."
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,$metadata
文档是与控件库并行获取的。$batch
这确保了一旦加载库就可以立即请求实体(例如在 中)。如果在 中声明库data-sap-ui-libs
,它们将首先加载,然后是$metadata
,然后是实体,这会产生不必要的瓶颈。
但即使不考虑 OData,我注意到当从data-sap-ui-libs
. 一般来说,除了记录的绩效指南之外,无论人们(包括我)说什么,尝试不同的方法并进行绩效衡量。
data-sap-ui-libs
:
Component.js
根本没有。sap.ui.core
访问除库之外的模块(例如,实例化为的 shell )sap.m.Shell
ComponentContainer
data-sap-ui-libs
完全删除并仅维护/sap.ui5/dependencies/libs
-特别是如果应用程序应该从应用程序容器启动,例如 SAP Fiori launchpad (FLP),它会index.html
完全跳过加载。另请参阅如果 UI5 清单中未更新库预加载文件/库依赖项会发生什么?
归档时间: |
|
查看次数: |
1915 次 |
最近记录: |