UI5:检索并显示 sap.m.Table 中的数千个项目

UI5: Retrieve and display thousands of items in sap.m.Table

有一个关系数据库(MySQL8)在table中有数万条项目,需要在sap.m.Table中显示。直接的方法是使用 SQL-query 检索所有项目,并以异步方式将其传送到 JSON 中的客户端。这种方法的主要缺点是客户端的性能和内存消耗。整个 table 需要在客户端显示,以提供用户和进行快速搜索的能力。这对应用程序至关重要。

目前有两种选择:

  1. 获取前 100 条记录并将它们推入 table。这样用户可以立即搜索最近的 100 条记录。同时在 web worker 中进行 运行 附加查询,这将花费大约 2…5 秒并获取除那 100 条以外的所有记录。然后,合并两个 JSONs.

  2. 将JSON作为缓存变量保存在应用服务器上,并在用户添加新记录或删除记录时更新它。然后我获取 JSON,这应该比查询数据库快得多。

问题:
如何在 OpenUI5 的 sap.m.Table 数千项中显示?

我的看法; 您需要为 table 创建 OData 后端。用户可以使用 OData 功能过滤或搜索记录。您不需要将所有数据推送到客户端,sap.m.Table 会在用户滚动 table.

时使用 OData 协议自动请求其余数据

SAP 推荐说 sap.m.Table 最多 100 个数据集。在实践中,我会建议遵循建议,即使在快速 PC 上渲染也会变慢。

如果您想测试超过 100 个数据集,您需要在 oModel 上设置大小限制,例如 oModel.setSizeLimit(1000);

你不能快速回答。

在 4.3 和 4.4 下使用 sap.ui.table or provide a proper odata service with top/skip support as shown here

根据您的后端代码(java、abap、node),有libs可以帮助您。