类似淘宝搜索框的功能 根据输入的内容 实时刷新搜索列表

今天听同事讨论的一个类似于淘宝搜索框的问题,他做的Windows上的程序。那上面有一个根据姓名/电话/身份证号来模糊查询的搜索功能,但是他一下子把所有的数据请求下来了,然后在模糊查询是时候就用请求下来的数据显示搜索列表。请求的数据量不少一万来条数据吧应该, 在请求时由于时间较长就出现了页面卡顿的情况,而且如果请求的时间是在后台被占用的高峰时期还会出现闪退的情况。所以他和后台又做了分流, 一次请求一半,说是用的时间也会少一半。但是问题还是没有解决的彻底,如果以后人翻了几倍后,难道再多请求几次吗?

我身为一个刚入行不久的小新,Android方面的稍微知道一点,再往外扩展的话就算了吧。Android这有的还没搞明白的0.0。看来还得是继续学习啊!!!

在他们弄完之后,我自己也想了想要是Android也有这方面需求该怎么做这个东西,需要根据用户在edittext中输入的内容而随时变化的列表,不能频繁的请求服务器也不能每次进来就请求要模糊查询的内容。那怎么做呢?我想到了保存到本地。

首先我想到的是用SP(SharedPreferences )来保存,然后还若有其事的在捋逻辑,先干什么 - 再干什么......  突然我就想到一个词:模糊查询! 对啊,我要用的是模糊查询,用SP怎么模糊查询啊。(说实话SP到底真的能不能模糊查询我不知道,因为我没听过也没看见过0.0。)然后我就有想的了SQLite,这个可是又能保持数据又能迷糊查询的了,然后自己有捋了遍逻辑。发现应该没多大问题了,我第一遍进来的时候请求一下,之后就不用再去请求了,这样不但达到需求了还节省了用户的流量。这时发现自己还是挺聪明的~

但是下午的时候突然想到这个数据是有可能随时都要改的,但是数据要是改了我前端什么时候能跟着改呢。然后我就想在后台加一个识别号,后台的数据每次做增删改的时候就改变这个识别号。客户端在进页面的时候去请求这个识别号,如果识别号不一样了就再去请求数据。这样的话就不用每次进来就请求大量的数据了。其实还有个想法就是让后台在做这些数据的增删改的时候,将做的什么操作记下来,到时候用户端光做相应的操作就行了,不用将数据全部请求下来。当然我感觉这个方法适合数据量很大的请求。

以上这些逻辑都是我自己捋出来的哈,代码还没写呢。嗯~  至少现在还没有代码。只是突发奇想的逻辑,怕以后忘掉所以先写个博客记录一下,然后再抽空写代码。如果有哪位大神路过,麻烦帮忙看一下,我这个逻辑能不能行的通。哪里有不对的或者走不通的地方麻烦帮忙打个字,指点一下,提前谢谢啦!

你可能感兴趣的:(类似淘宝搜索框的功能 根据输入的内容 实时刷新搜索列表)