我正在试图了解Twitters typeahead.js库是如何工作的,但我真的不明白Bloodhound是什么,“建议引擎”除了作为预先输入对象的来源之外还做了什么。
我的一些具体问题是:
我已经阅读了源代码,但我的Javascript并不是那么先进......文档对我来说真的不清楚,因为它主要是示例,似乎针对那些已经以特定方式实现了预先输入的人
如果有人能够从概念上解释它是如何运作的,我会非常感激。
祝你好运, 约书亚
答案 0 :(得分:0)
通过 JS Fiddles 详细分步 Typeahead Tutorial @Digital Fortress ,让您开始了解Bloodhound和Typeahead如何协同工作。
以下是教程中关于我推断的少数摘录:
为什么我需要对查询和基准进行标记化?标记意味着将字符串转换为较小字符串数组(称为标记)。这样做是为了简化搜索操作。例如,取字符串“hello super man”。您可以通过用空白字符拆分它们将此字符串转换为3个较小的字符串。因此,document.getElementById(questionAnswerProvidedState.QuestionId).setAttribute('disabled', 'true');
将变为"hello super man"
,并且可以轻松搜索以["hello","super","man"]
,hello
和/或super
开头/包含的字词。
标记化查询和基准会发生什么? Bloodhound引擎会使用这些建议向用户返回建议。 Bloodhound匹配查询和基准,并将结果作为建议返回给用户。
注意:官方的Typeahead库已经 NOT 收到了3年以上的任何更新(参考github)。但是应该使用积极维护的fork(截至2018年)。
<强> Reference 强>