这是一个理论问题;我和我的同事讨论了这个问题,所以我也想听听你的想法。
背景:我们想要开发一个基于网络的票务系统。
因此,将会有大量的工单对象和可能不同的不同参数。例如,一张票将有一个类别、优先级、客户、用户等。
这些工单参数大多数时候都是很短的列表,例如有 15 个类别、5 个优先级等等。
我们希望使用 Microsoft SQL Server、C# Web API 和 Vue.js 作为前端。
例如,如果我想获得所有当前打开的票证的列表:
我的同事说,以下是最简单的方法: 将 SQL 中所有必需的表连接到一个视图中,并将它们解析为从 API 到 vue.js 的一个大型 JSON 数组。
但我说可能存在性能问题,最好对所有类别进行一次查询,对所有优先级等进行一次查询并保存/缓存它们,然后仅检索原始票证数据并使用缓存的值进行显示。我认为在大型 JSON 中传输所有显示的值会导致过热,而且没有必要。例如,随着数据可能增长,它会发送类别名称“用户管理”500 次,而不是仅发送 id。
您是否认为这有很大的性能问题,或者情况并非如此,因为所有 JSON 都以文本形式传输,因此无论是 int 还是 string 都没有关系。
感谢您的投入!
大有效载荷就是大有效载荷。您可以进行无限滚动,这样您一次只能加载 20 张票之类的。如果您需要搜索,您可以拥有一些已预先缓存的高级功能,例如 Solr/Elasticsearch/Algolia。
还取决于每张票证中 DOM 元素的数量,但是,可能会出现性能问题,尤其是在中端移动设备上。
您可能也需要从头开始构建它,这一事实可能会很繁重,提前渲染一些内容(如果可能的话),这样您只需要显示 HTML 也可能有助于提高性能,因为您将跳过 JSON开销(又名:使用直接的 HTML 在用户设备上更轻)。
您甚至可以使用像MarkoJS这样的工具,这样您就可以更快地获得它,例如借助渐进式渲染。
所以总的来说,可以做很多事情来优化性能。这完全取决于您的技能/带宽和限制。
如果对于其他优先事项来说并不重要,那么加载时间缓慢也可能没问题。但这更多的是内部决定。
TLDR:是的,如果可以的话,为您的用户进行优化。