Trả lời

1

Dường như nó được thực hiện bằng javascript và jquery. Tôi túm lấy một vài dòng chính từ kịch bản minified trên trang chủ Quora mà tôi nghĩ rằng ủng hộ lý thuyết này:

Dưới đây là một cuộc gọi ajax đến một nguồn cung cấp dữ liệu 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)})})} 

lưu ý rằng kết quả thành công được đặt vào biến "a". Sau đó, sau đây là autocompletion dựa trên KeyDown của phần tử "question_box" được hoàn thành từ cha mẹ của "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} 
}) 

Tôi nghĩ rằng đây là khá không thể chối cãi, nhưng nó vẫn sẽ được tốt đẹp để có un- tập lệnh được rút gọn để so sánh. Ví dụ, tôi không thể nhìn thấy nơi resultsQueryPath đến từ (tôi không thể xác định vị trí nguồn của nó, có thể cố ý obfuscated).

+0

Đó là câu hỏi chính ... làm thế nào kết quả được đưa vào biến "a", tự động hoàn thành phía máy khách không phải là vấn đề lớn khi bạn có tập hợp kết quả nhỏ. câu hỏi của tôi là về khớp tiền tố thời gian thực tại phần cuối. – r15habh

+0

Ah tôi thấy những gì bạn đang nhận được, điểm tốt. Tôi nghĩ Quora có khoảng 200.000 câu hỏi và tất cả những câu hỏi đó đều không thể được tải phía khách hàng. Tôi không làm việc ở Quora nên tôi không thể suy đoán được. – jpredham

Các vấn đề liên quan