我正在编写一个Java APP,它读取大量数据:
try {
//Build the URL
getMethod = new GetMethod(url);
SimpleHttpResponseParser parser = new SimpleHttpResponseParser();
httpServiceClient.getRequest(...); //This takes about 10 minutes
List<ApiMessage> messages = objectMapper.readValue(parser.getHttpResponse()); //Convert the JSON Response into actual Java Object
for (ApiMessage m : messages) {
convertedMessages.add(ApiMessageMapper.map(m)); //Add each message to a more suitable data set to be painted later
}
//Return the data and such ...
}
此请求需要很长时间才能处理。我不希望用户等待超过10分钟才能看到结果。
有没有办法绘制约50个结果集并继续在后台下载其余数据?
答案 0 :(得分:0)
尝试实现分页。通常,服务器通过指定offset
和limit
来返回有限数量的结果。
在第一个电话上
offset=0
limit=50
在下一个电话
offset=51
limit=50
以此类推...
另一种方法是通过WebSockets使用服务器推送,但这将是一个更复杂的实现。