以下是我从网络服务返回的json:
{
"variantId": 100,
"tests": [
{
"testId": 15,
"attachments":[],
"attachmentLogs":[],
"flag" : true
},
{
"testId": 16,
"attachments":[],
"attachmentLogs":[],
"flag" : true
}
]
},
{
"variantId": 200,
"tests": [
{
"testId": 15,
"attachments":[],
"attachmentLogs":[],
"flag" : true
},
{
"testId": 16,
"attachments":[],
"attachmentLogs":[],
"flag" : true
}
]
}
现在我的网络服务方法并没有在我的json中返回附件和attachmentLogs,但是每个测试都会有一个附件和attachmentLogs的列表,对于每个变体,它都会有所不同。
对于例如:VariantId = 100和testId = 15将具有不同的附件和attachmentLogs.VariantId = 200且testId = 15将具有不同的附件和附件日志。
现在,如果用户想要查看VariantId = 100和TestId = 15的附件和附件日志,那么用户点击按钮,每次用户点击按钮时,我会进行2次服务器调用以获取附件和附件日志。
所以这里我的问题是我应该只在我的巨型json中获得附件和attachmentLogs,或者现在我正在做的是更好的方法。
实际上我觉得有一个如此庞大的json并没有在浏览器上增加任何性能开销,也不会给浏览器带来任何负担。
有人可以建议我处理这种情况的更好方法吗?
答案 0 :(得分:1)
如果每次调用服务时都需要这些日志/附件,可以添加它们,但如果它们是可选的,最好只添加带有这些巨大文件的ID / URL的引用,以便在必要时获取它们通过单独的请求。
在这种情况下,您将获得更快的响应时间,并且不会在每个请求上向服务发送不必要的数据。
答案 1 :(得分:0)
如果您只想在用户点击按钮时显示附件及其日志,那么您当前的解决方案是好的。 因为,如果您同时获得所有附件和附件日志,您将获得数据,但可能根本不会使用该数据,因此会丢失资源。 如果假设有50个变体且用户只对其中2个变量感兴趣,那么为什么要获取所有数据。
但是如果你能实现一种分页类型的东西,那么另一种解决方案就有意义了。假设您一次只显示5个变体,接下来的api调用接下来的5个变量,最好一次显示所有数据。