栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android-Ajax样式自动检查用户名可用性

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android-Ajax样式自动检查用户名可用性

可以
在每次按键事件中使用当前输入的用户名查询服务器的用户数据库,以获取指定的输入组件(

EditText
等),但这可能会占用大量网络资源,并且会产生大量线程来处理:

  1. TextWatcher
    在您的输入中添加一个,
    EditText
    或在用户输入其名称的任何位置
  2. 在该
    onTextChanged
    方法中,您将生成一个线程来联系数据库,并发送该
    CharSequence
    值。服务器的响应将输出一些JSON,也许带有boolean属性,该属性说明用户名是否可用
  3. 用户点击“确定”,并希望自己注册自己的名字。由于他们的可用性可能已经发生了变化(例如,很多人一次注册全部),因此在他们实际获得此昵称之前,需要进行最终检查。

要么…

  1. 让用户输入所需的名称
  2. 让他们点击“保存”或“注册”
  3. 此时,请发送注册数据并将其保存在数据库中(如果名称可用)。否则,让用户知道不是,他们必须重试

要么…

当应用启动时(必须在选择名称之前),请与服务器的数据库联系,并向应用发送响应,其中包含已使用的名称列表。

这样,您可以轻松检查名称是否在电话上本地使用,而不用发送检查请求。

您仍然必须始终先检查昵称的可用性,然后再将其保存在服务器端

编辑:我已经实现了#2,这似乎是大多数应用程序为注册唯一名称所做的工作(我见过)

#1的问题-
用户输入1个字母(网络线程已启动)-用户输入另一个字母(另一个线程已启动)-用户输入了第3个字母(另一个线程)-线程2首先完成,名称有效,已通知用户-
线程1完成,名称无效,通知用户-线程3完成,名称无效,通知用户

线程2花费了4秒线程1花费了5秒线程3花费了5秒

假设用户不断输入25个字母,那么您必须跟踪很多术语,例如名称是否有效,是否以及哪些线程仍在运行等

对于这样一个简单的注册任务,这种方法似乎有点乏味,太麻烦了

#3的问题-需要向服务器发送1个额外的网络请求

我喜欢这种方法,因为您可以轻松快速地通知用户是否可以使用他们的姓名,而无需任何线程处理(取决于您的用户列表的大小),也不必担心检查需要多长时间

数字2很简单,容易,并且有机会只需要1个服务器请求



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号