我目前正在使用 HTML5 和 JS 构建一个 android 应用程序,并使用一个以 JSON 格式返回数据的 API。使用一系列 PHP 脚本将这些数据放在一起。
该应用程序使用各种不同的数据集,例如Classes
和Classmates
。进行单个 API 调用并以单个 JSON 结构返回所有这些数据集会更快/更好,还是仅在用户想要查看它们时进行不同的 API 调用是一个更好的主意?
我知道远程调用越少越好,但这会影响应用程序的性能吗?
您的问题的最短答案是肯定的,它会对性能产生负面影响。特别是如果您同步提出请求。
一般来说,能够使用 API 返回元素集合以及元素的单个实例是完全有意义的。这是 REST API 中的常见做法。例如apiUrl/users/
,代表一个用户列表,其中apiUrl/users/1
代表一个 id = 1 的用户。确保在尽可能少的 API 调用中只提取所需的数据。
为了提高效率,请异步发出请求。
更新:我意识到您可能希望将两种不同的数据类型混合在一起(Classes
和Classmates
),因此为了将来参考,我将添加一些有关 API 设计的信息。让您的apiUrl/Classes/1
url 返回有关该课程的详细信息Class
以及Classmates
当前注册该课程的对象数组。这通常是一种很好的做法,因为它不需要为每个单独的同学进行一次 API 调用,或者单独调用来接收Classmates
for one的列表Class
。
如果您真的想增加灵活性,请添加一些参数来告诉 API 您希望将Classmates
列表包含在您的请求中。一个非常基本的实现可能如下所示:apiUrl/Classes/1?classMates=y
根据需求拉取数据。如果用户在屏幕上查看某个班级的所有同学,那么提取他们甚至不会使用的额外数据将是缓慢且不必要的。
还可以从屏幕之间的先前 API 调用中保存哪些数据。