想到一个很现实的问题,如何作?

ruhong1 2016-10-25 07:39:38
在txtbox的Changed事件中,用户输入文字,我就根据他的输入来搜索数据库内容,
我怎么判断他停止输入?不然他输一个字符,我后台就执行一次?不科学啊。
...全文
694 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
要么就让他一改变就搜一次 要么用timer限时,每几秒判断一下搜索框的值是否与之前不同,不同就搜索,并保存当前搜索的用户输入内容以便下次判断
飞天凤凰601 2016-10-31
  • 打赏
  • 举报
回复
停顿0.5秒后搜索
bd_xuzhen 2016-10-31
  • 打赏
  • 举报
回复
说话这块百度的搜索引擎做的很好
attilax 2016-10-26
  • 打赏
  • 举报
回复
Atitit 自动完成功能的设计与实现 attilax总结 1.1.俩种方案::一种是每输入一个字符就查询数据库 推荐 在性能的允许下,应该尽可能使用此种方案。。用户体验更好。 1.2.如果性能不够,使用第二种方案是定时timer触发数据查询。 触发事件根据系统实际性能来延迟或者缩短即可。。 1.3.一定要用并发的方式来查询,否责界面ui可能卡顿。。每条请求使用reqID表明顺序。 如果多余的resp,则丢弃即可。使用最新的resp。。 作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )  汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com 转载请注明来源: http://blog.csdn.net/attilax Atiend
threenewbee 2016-10-26
  • 打赏
  • 举报
回复
可以在本地缓存查找的结果,如果连续键入,肯定查找的范围在缩小,否则则请求数据库
楚狂歌 2016-10-26
  • 打赏
  • 举报
回复
智能分词,以词组为单位来搜索
我叫小菜菜 2016-10-26
  • 打赏
  • 举报
回复
引用 12 楼 u013315639 的回复:
[quote=引用 11 楼 sp1234 的回复:] [quote=引用 4 楼 ruhong1 的回复:] [quote=引用 3 楼 xuzuning 的回复:] 有人希望键一放开就有相关的信息出来 有人希望键输入几个字就会有相关的信息出来 有人希望键输入一段话后才会会有相关的信息出来 众口难调啊
所以最好是可以调节啊。[/quote] 要考虑到,用户并不都是不是程序员、网管。 因此你站在比较高的位置要引导用户,而不是把用户当作技术人员。这就好像是 iphone 当初为什么会火?因为它没有采用你这种“最好是可以调节啊”的羸弱的策略,而是采用积极主动的设计。[/quote] 同意这个,要是我,我就必须让用户点“搜索”按钮,才让他搜了[/quote] 搜索功能,非必要的话不要这么实时,因为你的性能根本不允许高频搜索操作。人家搜索功能,一分钟内搜十来次还得写验证码呢,如果按照楼主的想法,我分分钟就把程序搞崩溃了,多开几台,你服务器就停止响应了。 首先弄清楚你的需求,并确认需求可行性再考虑技术问题吧。
冰冷的小爪 2016-10-26
  • 打赏
  • 举报
回复
引用 11 楼 sp1234 的回复:
[quote=引用 4 楼 ruhong1 的回复:] [quote=引用 3 楼 xuzuning 的回复:] 有人希望键一放开就有相关的信息出来 有人希望键输入几个字就会有相关的信息出来 有人希望键输入一段话后才会会有相关的信息出来 众口难调啊
所以最好是可以调节啊。[/quote] 要考虑到,用户并不都是不是程序员、网管。 因此你站在比较高的位置要引导用户,而不是把用户当作技术人员。这就好像是 iphone 当初为什么会火?因为它没有采用你这种“最好是可以调节啊”的羸弱的策略,而是采用积极主动的设计。[/quote] 同意这个,要是我,我就必须让用户点“搜索”按钮,才让他搜了
  • 打赏
  • 举报
回复
引用 4 楼 ruhong1 的回复:
[quote=引用 3 楼 xuzuning 的回复:] 有人希望键一放开就有相关的信息出来 有人希望键输入几个字就会有相关的信息出来 有人希望键输入一段话后才会会有相关的信息出来 众口难调啊
所以最好是可以调节啊。[/quote] 要考虑到,用户并不都是不是程序员、网管。 因此你站在比较高的位置要引导用户,而不是把用户当作技术人员。这就好像是 iphone 当初为什么会火?因为它没有采用你这种“最好是可以调节啊”的羸弱的策略,而是采用积极主动的设计。
  • 打赏
  • 举报
回复
虽然有一些比较“老的”例子是等用户停顿一段时间(例如2秒钟)才去匹配输入,但是要知道,这样的用户体验并不是很好。单纯从技术出发、以技术的脑袋去生搬硬套“合理的需求”,不顾市场竞争用户体验的现实,是软件设计的大忌。你看看主要的搜索引擎的录入部分是多长时间、几个字符之后显示 autocompleted 结果,就明白了。
  • 打赏
  • 举报
回复
引用 楼主 ruhong1 的回复:
在txtbox的Changed事件中,用户输入文字,我就根据他的输入来搜索数据库内容, 我怎么判断他停止输入?不然他输一个字符,我后台就执行一次?不科学啊。
这根本不是技术问题,技术是回答不了你的。你应该用现实的“隐喻”来自己调查研究,分析那些根本不懂计算机软件的人是怎样做到类似的操作的。
D56233577 2016-10-26
  • 打赏
  • 举报
回复
别简单事情整复杂,应该对时间限流,当输入间隔超过指定的时间时才去查询数据库。有现成的类库可以用,不光简单,性能也不错。
飞天凤凰601 2016-10-26
  • 打赏
  • 举报
回复
让我想起了ajax
xuzuning 2016-10-25
  • 打赏
  • 举报
回复
那么答案你已经找到了:你判断一下自上次查询到现在,又打了几个字不就行了吗
ruhong1 2016-10-25
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
有人希望键一放开就有相关的信息出来 有人希望键输入几个字就会有相关的信息出来 有人希望键输入一段话后才会会有相关的信息出来 众口难调啊
所以最好是可以调节啊。
xuzuning 2016-10-25
  • 打赏
  • 举报
回复
有人希望键一放开就有相关的信息出来 有人希望键输入几个字就会有相关的信息出来 有人希望键输入一段话后才会会有相关的信息出来 众口难调啊
stherix 2016-10-25
  • 打赏
  • 举报
回复
Changed事件里开启一个Timer 当Timer触发的时候去查询数据库 如果发现Timer已经开启 那么重置 这样用户连续输入后 停止一定时间才会去查询
我不懂电脑 2016-10-25
  • 打赏
  • 举报
回复
在textchange事件里处理

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧