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



有一个关系数据库(MySQL 8(,表中有数万个项目,需要用sap.m.Table显示。直接的方法是使用 SQL 查询检索所有项目,并以异步方式将其以 JSON 形式交付到客户端。此方法的主要缺点是客户端的性能和内存消耗。整个表格需要显示在客户端,以提供用户和进行快速搜索的能力。这对应用程序至关重要。

目前,有两种选择:

  1. 获取前 100 条记录并将其推送到表中。这样,用户可以立即搜索最后 100 条记录。同时在 Web worker 中运行额外的查询,这将需要大约 2...5 秒并获取除 100 条记录之外的所有记录。然后,合并两个 JSON。

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

如何在OpenUI5的sap.m.Table数千个项目中显示?

我的意见; 需要为表创建 OData 后端。用户可以使用 OData 功能筛选或搜索记录。无需将所有数据推送到客户端,sap.m.Table用户滚动表时自动使用 OData 协议请求其余数据。

快速回答你不能。

使用 sap.ui.table 或提供具有 top/skip 支持的适当 odata 服务,如 4.3 和 4.4 所示。

根据您的后端代码(java,abap,node(,有一些库可以帮助您。

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

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

最新更新