r15*_*abh 5 search autocomplete pattern-matching prefix string-matching
如何在Quora中实现前缀匹配的实时自动完成?
由于Solr和Sphinx不支持实时更新,因此进行了哪些更改以支持实时更新?
看起来它是使用 javascript 和 jquery 完成的。我从 Quora 主页上的缩小脚本中摘录了几行我认为支持这一理论的关键行:
\n\n下面是对提供 JSON 数据的资源的 ajax 调用:
\n\n$.ajax({type:"GET",url:this.resultsQueryPath,dataType:"json",data:a,success:this.fnbind(\xc6\x92(a){this.ajaxCallback(a)}),error:this.fnbind(\xc6\x92(a,b,c){console.log(b,c),this.requestOutstanding=!1,this.$("#@results_shell").html("Could not retrieve results: "+b)})})}\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,成功的结果被放入“a”变量中。接下来是基于“question_box”元素的按键自动完成,该元素是从“a”的父元素完成的
\n\nthis.$ ("#@item input.question_box").keydown (\xc6\x92 (b) {\nif (b.keyCode==9&&!b.shiftKey)for (var c=e.getLiveDomId (a.cid),d=a.parent ().orderedVisibleChildren (),f\\^M=0;f<d.length-1;++f)if (c==d [f]) {\n$ (this).blur (),$ ("#"+d [f+1]+" input.question_box").focus ();return!1}\n})\nRun Code Online (Sandbox Code Playgroud)\n\n我认为这是无可争议的,但如果有未缩小的脚本进行比较仍然会很好。例如,我看不到 resultsQueryPath 来自哪里(我无法找到它的来源,可能是故意混淆的)。
\n| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |