鸿 网 互 联 www.68idc.cn

JavaScript 上万关键字瞬间匹配

来源:互联网 作者:佚名 时间:2013-07-16 07:07
发一篇之前写的文章,平时还是经常用到的,尤其是河蟹词特别多的聊天系统里。 ------------------------------------------------- 提到关键字搜索,首先联想到的无非就是使用一些indexOf,replace之类的字符函数,最多加上一些正则表达式而已.实现起来虽然

  发一篇之前写的文章,平时还是经常用到的,尤其是河蟹词特别多的聊天系统里。

  -------------------------------------------------

  提到关键字搜索,首先联想到的无非就是使用一些indexOf,香港服务器租用,replace之类的字符函数,最多加上一些正则表达式而已.实现起来虽然很简单,香港服务器,但是这背后的效率问题可曾仔细考虑过?例如论坛中的关键字过滤,一般情况下需过滤的关键字数量及检测的文本长度都不大,所以这一瞬间的过程没有太多值得关注的地方。但若关键字数量不在是屈指可数,而是有成千上万, 并且待检测的文本也是一长篇大论,结果可不再是那么乐观了。大家都知道,每多一个关键字,香港虚拟主机,就要增加一次全文的检索,最终花费的时间将远远超出可接受的范围内。

  

  既然考虑的是那种极端的关键字搜索,通常的逐个遍历搜索显然是行不通的。如今用的是JavaScript,若不使用Hash表实在是太对不起这门语言了。有着对表特天独厚的支持,不妨就拿出少量的空间来换取大量的时间吧。

  

  先看个例子,比如有如下的关键字: foo1,foo2,bar1,bar2,既然要用空间换时间,因此搜索之前先将他们预处理。前面提到了JS灵活又高效的表,显而易见,使用树的结构是最有优势的。即使不明白,也没关系,最终实现结构正如如下的代码,熟悉JSON同样很亲切:

var Root = { f: { o: { o: { 1: true, 2: true } } }, b: { a: { r: { 1: true, 2: true } } } };

上一篇: ExtJS 4 树
下一篇:IE6、7中的setAttribute
网友评论
<