有一个关系数据库(MySQL 8(,表中有数万个项目,需要用sap.m.Table
显示。直接的方法是使用 SQL 查询检索所有项目,并以异步方式将其以 JSON 形式交付到客户端。此方法的主要缺点是客户端的性能和内存消耗。整个表格需要显示在客户端,以提供用户和进行快速搜索的能力。这对应用程序至关重要。
目前,有两种选择:
-
获取前 100 条记录并将其推送到表中。这样,用户可以立即搜索最后 100 条记录。同时在 Web worker 中运行额外的查询,这将需要大约 2...5 秒并获取除 100 条记录之外的所有记录。然后,合并两个 JSON。
-
将 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);