当前位置: 首页 > 面试题库 >

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

陶乐生
2023-03-14
问题内容

我正在构建一个Android应用,其中用户需要选择一个昵称。现在,两个用户不能使用相同的昵称。我在.net上看到过一些表单,在这些表单中,我们可以验证特定用户名的可用性,同时用户使用Ajax调用键入或按Tab。

我的问题是-是否可用于Android。我可以即时查询服务器并验证昵称是否可用。

非常感谢您的回复。如果需要查看任何教程,示例或Android文档参考,请指导我。


问题答案:

可以
在每次按键事件中使用当前输入的用户名查询服务器的用户数据库,以获取指定的输入组件(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个服务器请求



 类似资料:
  • 问题内容: 我有一个用户登录表格: 我想在:user- field失去焦点之后立即检查数据库中是否存在用户名。我可以使用javascript在表单上覆盖此事件,但是无法从javascipt代码发送Ruby- AJAX请求。 有什么方法可以在不添加表单上其他控件(按钮,链接)的情况下检查用户名? 问题答案: 由于什么原因,您不能从javascript代码发送ajax请求? 最好的方法是在失去焦点时发

  • 我有麻烦让我的代码工作。当用户输入用户名时,它会检查数据库,看看它是否存在,以及它是否设置了

  • 我想检查用户的用户名和电话号码是否唯一。我已经用FirebaseFirestore实现了它。getInstance()。集合(“用户”)。whereEqualTo(“电话”,ph)。get()。addOnCompleteListener(…) 这是我的firestore规则: 代码运行良好,没有问题。我在使用方法和请求之前检查这个。啊。uid将始终为空。要使代码工作,我必须保持

  • 问题内容: 因此,基本上,我想在注册表格中添加一个功能,该功能将检查数据库中是否已存在该用户名。 我对AJAX有几个问题- 1)我想创建一个AJAX请求on_change函数,所以像这样- 因此,据我所知,我必须在validation.php文件中包含所有在PHP中进行的验证,对吗?是否需要任何特殊的验证,或者只是使用sql语句进行的简单验证- 2)据我所知,我也必须通过$ .ajax传递POST

  • 问题内容: 我正在尝试允许用户通过搜索用户名来开始游戏并关注其他用户。我需要确保具有该用户名的用户存在。我正在使用以下代码,但是尽管调用了,但在应调用时却没有被调用。 JSON数据树 问题答案: 轻松解决: 不要使用.childAdded,因为当查询找不到任何内容时,该块将不会执行。 而是使用.Value并检查NSNull

  • 问题内容: 我必须开发一个Android应用程序。 在这里,我必须开发一个Twitter集成android应用程序。 我使用下面的代码: 这是下面的错误: 请帮助我…我该如何解决这些错误? 问题答案: