当我向下滚动到RecyclerView项目刷新时。
例如,项目具有上下投票,并且还有总评论和总投票。每个项目询问网络服务用户投票,多少票和多少评论。滚动RecyclerView的项目会询问每个项目的Web服务。滚动时,如果用户投票一个项目,有点迟到RecyclerView也总投票和总评论迟到。这对用户来说应该是烦人的。
Edit1:如果您在向上和向下滚动的过程中,RecyclerView会一直询问Web服务甚至已经加载的项目。
我的问题是客户端和服务器端。双方如何才能更有效率?我的解决方案是有效的,但我想知道双方都有更高效的解决方案。你有什么建议吗?
我使用golang编写了Web服务。如果有更有效的方法,我可以改变整个服务。因为这种方式在数据库上有这么多连接。对于一个用户和一个项目,每个Web服务和数据库有6个连接。我是网络服务的新手,我想这种方式有些漏洞。
我想我可以稍微解释一下情景。 Auth用户分享在RecyclerView中显示的帖子图片及其帖子。每个人都显示了帖子,总投票和总评论,但只有auth用户才能投票。
这个问题如此普遍,我知道,但我必须问别人并学习正确的方法。
Android客户端 RecyclerViewAdapter
@Override
public void onBindViewHolder(final PostHolder holder, final int position) {
final Post post = posts.get(position);
holder.setTitle(post.getTitle());
holder.setImage(context, post.getImageUrl());
//voteSum ask the web services
holder.setVoteSum(post.getPostId().toString());
//commentSum ask the web services
holder.setCommentSum(post.getPostId().toString());
if (getIsAuth()) {
// did user vote? ask the web services
holder.setUpDownVote(post.getPostId());
}
holder.imbUpVote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// vote and go web service
// after call votesum
// call againg did user vote? ask the web services
}
holder.imbDownVote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// vote and go web service
// after call votesum
// call againg did user vote? ask the web services
}