做了个简单的搜索提示程序,类似google之类的搜索提示,就是输入一个内容时,会把开头对得上的内容显示出来。下面可以测试看看:
呵呵,这里没有显示有多少条结果,当然也要做到统计也是可以的。这里只做简单的显示。
下面就说说两种做法。
第一种,是在用户输入提示信息的时候,把用户输入的信息跟应用中存的数据进行比较,找出匹配的数据,然后 在list组件里显示出来
//输入文本内容变化事件
private function inputChangeEvent():void
{
//每次输入文字变化,都检索一下,查看数据是否变化
if(currMsg != searchText.text)
{
currMsg = searchText.text;
var seachData:ArrayCollection = new ArrayCollection();
if(currMsg != "")
{
//在这里分析所有的内容,找出符合的内容
for(var i:int = 0; i < source.length; i++)
{
//逐个检索,是否具有输入的内容,有则存放进去
if(source[i].label.indexOf(currMsg) == 0)
{
seachData.addItem(source[i]);
}
}
}
//显示是否有相关的搜索相关信息,如果没有就显示默认信息
if(seachData.length == 0)
{
seachData = defaultData;
}
//显示出与搜索相关的信息
searchMsgList.visible = true;
searchMsgList.dataProvider = seachData;
}
}
恩,该函数是当输入文本框的内容有变化时触发的。代码的注释已经相当清晰了
接下来看另外一种处理发方法。其实大体的都差不多,这里只是对数据源刚传进来的时候,就马上对数据进行分析,归类,逐个分析,把具有相同内容的数据存放在一个数组里,最后把这些数据都和搜索内容捆绑,存放到一个集合里。所以当用户录入信息时,直接根据输入内容那分类好的数组就可以了
下面是传输数据源时的代码
/**
* 设置需要搜索的内容
* @param:内容数组
*/
public function setSearchDatas(source:Array):void
{
//这里是数据一传递进来,就开始做分析
//对这里里面的所有数据进行检索分类,以方便输入查询
for(var i:int = 0; i < source.length; i++)
{
var key:String = source[i].label;
//对字符串长度进行检索,并且分析,对每一个字符组合都存放起来
for(var j:int = 1; j <= key.length; j++)
{
var str:String = key.substring(0,j);
//从存放有相同标题的集合中取出来
var strAry:ArrayCollection = searchMap[str] as ArrayCollection;
if(strAry == null)
{
strAry = new ArrayCollection();
searchMap[str] = strAry;
}
//存放完整的对象
strAry.addItem(source[i]);
}
}
}
然后下面是用户输入信息有变化时的相应函数
//输入文本内容变化事件
private function inputChangeEvent():void
{
//每次输入文字变化,都检索一下,查看数据是否变化
if(currMsg != searchText.text && currMsg != "")
{
currMsg = searchText.text;
//显示是否有相关的搜索相关信息,如果没有就显示默认信息
var strAry:ArrayCollection = searchMap[currMsg] as ArrayCollection;
if(strAry == null)
{
strAry = defaultData;
}
//显示出与搜索相关的信息
searchMsgList.visible = true;
searchMsgList.dataProvider = strAry;
}
}
最后总结一下,如果少量数据的话,应该都没什么区别。但是,如果有大量数据时,区别就来了。
第一方法比较简单,消耗的内存比较少,但是因为是即时分析数据源,所以搜索出来可能会稍微慢点。
第二种的话,因为实现已经分析好了,可以根据用户输入的内容马上从哈希表里取出对应数据。所以取数据反应会非常快。但是占用内存可能会多点(因为要根据每个字符串组合进行存放,不过其实也是增加多一些字符串,对象只是引用而已)。
同时还做一些细的优化,例如限制长度等等,至于怎么用,根据爱好了。如果数据量大的话,个人偏向第二种。这里的两种算法其实跟具体的CS3或者flex组件不相关的,只是用list来显示而已。
分享到:
相关推荐
【标题】"动态查找类似谷歌搜索引擎"涉及到的核心技术是HTML和JavaScript,这两种技术在Web开发中扮演着重要的角色。HTML(HyperText Markup Language)用于构建网页的结构,而JavaScript则负责网页的交互性和动态...
这个主题“ASP+AJAX做类似google的搜索提示”聚焦于如何利用这两种技术来实现这一功能。 ASP(Active Server Pages)是微软开发的一种服务器端脚本环境,用于创建动态交互式网页。它允许开发者使用脚本语言(如...
而实现QComboBox输入自动提示功能,可以极大地提升用户体验,类似于Google搜索框的自动完成效果。这个功能在开发过程中常用于减少用户的输入负担,提高数据选择的效率。本篇将详细介绍如何在C++中使用Qt库来实现这一...
在本项目中,"TextBox和ComboBox智能提示功能源代码"是实现了一个类似于Google首页搜索框的智能提示效果。 TextBox通常是单行文本输入框,用户可以在此输入文本。在实现智能提示时,当用户在TextBox中输入字符时,...
在IT行业中,Ajax(异步JavaScript和XML)与JSON(JavaScript Object Notation)的结合是构建现代Web应用程序的关键技术之一,尤其是对于实现类似Google搜索提示的功能。本文将深入探讨这两个技术以及如何利用它们来...
- 通过Google的图像搜索功能,用户可以直接上传图片或输入图片URL来查找类似图像或包含该图片的网页。 #### 目录检索 - Google也支持通过特定命令检索网站目录,这对于查找特定类型的资源非常有帮助。 #### 新闻...
其中,jQuery的自动提示插件为用户提供了一种类似于Google和百度搜索的智能提示功能,能够实时显示与用户输入匹配的建议内容,从而提高输入效率和准确性。 **jQuery Autocomplete 插件** jQuery Autocomplete是...
Ajax Suggest是一个功能强大的JavaScript框架,它允许开发者创建类似Google搜索提示的效果,即在用户输入关键词时,自动显示与输入匹配的相关建议。这种实时的交互性增强了用户体验,减少了用户寻找和输入完整信息的...
标题中的“suggest 仿google提示”指的是创建一个类似于Google搜索框自动补全的功能。这个功能在用户输入查询词时,会根据已有的数据提供相关的建议,以提高搜索效率和用户体验。这种技术通常被称为自动完成功能或者...
仿百度、Google搜索效果的AutoComplete旨在提供与这两家知名搜索引擎类似的用户体验,即当用户在搜索框输入内容时,系统会实时分析并推荐相关的搜索建议,以下拉列表的形式呈现,帮助用户快速找到目标信息。...
双因素认证(2FA)是一种安全措施,它要求用户提供两种不同的身份验证方式来证明自己的身份。在典型的2FA流程中,用户首先输入用户名和密码,然后通过手机应用、短信验证码、硬件令牌或生物识别等第二种验证方式完成...
而"类似Google的输入下拉提示"则是指搜索引擎或输入框在用户输入时,根据输入内容动态展示相关建议,这种功能在很多网站和应用中都有广泛的应用,能够快速引导用户找到他们可能想要搜索的内容。 DWR(Direct Web ...
在ASP中实现站内搜索有两种方式:一是直接引用知名搜索引擎提供的站内搜索代码,如上述的Google、百度和雅虎的站内搜索代码;二是自行设计站内搜索程序。引用知名站点的站内搜索代码相对简单,只需将提供的代码插入...
SlidingPaneLayout允许你创建一个可以从屏幕边缘滑出的面板,而DrawerLayout则专为导航抽屉设计,支持左滑和右滑两种模式。在提供的代码中,开发者可能已经实现了类似的功能,你可以通过阅读源码来理解其工作原理。 ...
"ASP+AJAX输入框提示效果"是将这两种技术结合,为用户提供类似Google搜索那样的实时输入提示功能。在用户输入查询词时,服务器会根据输入的内容即时返回相关的建议,这些建议通常以下拉列表的形式显示在输入框下方,...
在JavaScript中,打开新的页面主要有两种方法:`window.open()`函数和`location.assign()`或`location.replace()`。这两种方法在应用场景和效果上有所不同,下面将详细介绍它们的工作原理、使用方式以及适用场景。 ...
CSS 文件可能命名为 `balloon.css` 或类似名称,包含所有与气球提示相关的样式规则。`images` 目录可能包含用于装饰气球提示的图像,如背景图片、箭头图标等。 总的来说,"JavaScript+css+div实现的网页气球提示"是...
1、实现了类似Google的智能搜索框,能够根据关键词提示并自动完成搜索词的输入,使得搜索更加方便、准确。 2、增加了对重复入库代码的过滤功能。 3、代码段搜索界面中增加了“最近入库”和“最近使用”选项卡,使...
2. Objective-C/Swift:这两种语言是iOS开发的主要语言,Swift是较新的语言,语法更现代,而Objective-C是遗留的但仍然广泛使用的语言。 3. UIKit框架:这是iOS开发的核心,包含了创建用户界面、处理用户交互和管理...
这样,用户在输入时就能看到匹配的建议项,提供类似Google搜索的体验。 总结来说,这个资源提供了一种实现QComboBox自动提示功能的方法,通过自定义QComboBox子类,监听文本变化,过滤数据并实时更新显示。这种技术...