背景
在目前流行的各种浏览器中,都包含了一个比较实用的特性:当你在地址栏中输入字符时,浏览器自动匹配出一些可能的结果给你,非常快捷和高效,本文主要讨论在Chrome中的实现机制。
Chrome的实现机制
在Chrome中与AutoComplete相关的类都包含在Browser工程中。主要包含了以下几个类:
上图的类结构中,右侧的几个类是完成AutoComplete功能的逻辑部分,左侧的几个类主要是对应的界面类。
AutocompleteController: Auto Complete 控制器。这是完成Auto Complete功能的核心调度类。AutocompleteController接受用户的输入,将任务分配给各个AutocompleteProvider,并对各个AutoCompleteProvider生成的AutocompleteMatch结果进行汇总、排序、过滤。最后将结果返回给UI。UI层将建议结果以AutocompletePopupView下拉框形式展示给用户。
AutoCompleteProvider:AutoComplete任务的真正执行者,包含了四个不同的子类,分别