risposta

1

Sembra che sia fatto usando javascript e jquery. Ho afferrato alcune righe chiave della sceneggiatura minified sulla homepage Quora che penso che supportano questa teoria:

Ecco una chiamata AJAX a una risorsa che fornisce i dati JSON:

$.ajax({type:"GET",url:this.resultsQueryPath,dataType:"json",data:a,success:this.fnbind(ƒ(a){this.ajaxCallback(a)}),error:this.fnbind(ƒ(a,b,c){console.log(b,c),this.requestOutstanding=!1,this.$("#@results_shell").html("Could not retrieve results: "+b)})})} 

nota che il risultato di successo viene messo nella variabile "a". Poi più tardi ecco il completamento automatico in base alla keydown dell'elemento "question_box", che sta completando dal genitore di "a"

this.$ ("#@item input.question_box").keydown (ƒ (b) { 
if (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]) { 
$ (this).blur(),$ ("#"+d [f+1]+" input.question_box").focus();return!1} 
}) 

credo che questo sia abbastanza incontrovertibile, ma sarebbe comunque bello avere la ONU script minifatto da confrontare. Ad esempio, non riesco a vedere da dove provengaQueryPath (non riesco a localizzarlo, potrebbe essere intenzionalmente offuscato).

+0

Questa è la domanda principale ... come si ottiene il risultato nella variabile "a", il completamento automatico del client non è un grosso problema quando si ha un piccolo insieme di risultati. la mia domanda riguarda la corrispondenza del prefisso in tempo reale al backend. – r15habh

+0

Ah, vedo cosa stai ottenendo, buon punto. Penso che Quora abbia circa 200.000 domande e che non tutti possano essere caricati dal lato client. Non lavoro a Quora quindi non posso davvero speculare. – jpredham

Problemi correlati