HT 快速查询器手册

索引


概述

DataModelData非常多的情况下,查询某属性为某特定值的Data需要遍历整个DataModel,会造成很大的性能开销, QuickFinderDataModel中所有Data的特定属性建立map(映射表),可以显著提高查询速度,举个例子:

var quickFinder = new ht.QuickFinder(dataModel, "name");

这段代码中创建了一个QuickFinder并绑定了name属性,假如DataModel中有10Data,前5Datanamename1, 后5Datanamename2,则此quickFinder内部维护的map中包含两个键值对,第一个keyname1value为一个集合(包含DataModel中前5Data), 第二个keyname2value为一个集合(包含DataModel中后5Data),当我们调用下面的API查询时:

var nodes = quickFinder.find("name1");

quickFinder直接把第一个键值对的值(包含前5Data的集合)返回,无需遍历整个DataModel。 而且,这个quickFinder一旦建立,DataModel的任何变化都会影响它,比如新增Data或删除DataData的属性发生了变化, quickFinder内部的映射表都会随之更新。假如您的项目中经常需要用到某个属性查询(比如name),可以在全局创建一个QuickFinder,在需要查询的地方即可使用这个快速查询器来提高性能。

有两个使用误区需要注意:

使用此插件需要引入ht-quickfinder.js

<script src="ht.js"></script> <!--先引入ht.js-->
<script src="ht-quickfinder.js"></script>

在上面的代码中已经介绍了构造函数参数中的前两个参数,下面是完整的参数列表:

查询器上常用方法如下:

示例

这是一个测试用例,请注意控制台输出,如果测试没通过会拋出异常信息:


欢迎交流 service@hightopo.com