2008-11-01 10 views
9

In meiner Website haben Benutzer die Möglichkeit, Links zu speichern.So implementieren Sie Google Suggest in Ihrer eigenen Webanwendung (z. B. mit Python)

Während der Eingabe der Internetadresse in das vorgesehene Feld möchte ich eine Vorschlags-/Autocomplete-Box ähnlich Google Suggest oder Chrome Omnibar anzeigen.

Beispiel:

Benutzer wird als URL eingeben:

http://www.sta 

Vorschläge, die angezeigt werden würde:

http://www.staples.com 
http://www.starbucks.com 
http://www.stackoverflow.com 

Wie kann ich diese während erreichen nicht das Rad neu erfinden? :)

Antwort

0

Wenn die automatische Vervollständigung das Datum aus Ihrer eigenen Datenbank verwenden soll, müssen Sie die Suche selbst durchführen und die Vorschläge aktualisieren, indem Sie AJAX als Benutzer eingeben. Für den Suchteil möchten Sie vielleicht Lucene betrachten.

2

Ich habe das schon einmal in einem Django-Server gemacht. Es gibt zwei Teile - Client-Seite und Server-Seite.

Client-Seite müssen Sie XmlHttpRequests an den Server senden, während der Benutzer schreibt, und dann, wenn die Information zurückkommt, zeigen Sie es an. Dieser Teil benötigt eine anständige Menge an Javascript, einschließlich einiger kniffliger Teile wie Callbacks und Tastenkombinationen.

Server-Seite müssen Sie die XmlHttpRequests behandeln, die etwas enthält, was der Benutzer bisher eingegeben hat. Wie eine URL von

www.yoursite.com/suggest?typed=www.sta 

und dann mit den in irgendeiner Weise codierten Anregungen reagieren. (Ich empfehle JSON-Codierung der Vorschläge.) Sie müssen auch tatsächlich die Vorschläge von Ihrer Datenbank abrufen, dies könnte nur ein einfacher SQL-Aufruf oder etwas anderes sein, abhängig von Ihrem Framework.

Aber der serverseitige Teil ist ziemlich einfach. Der clientseitige Teil ist schwieriger, denke ich. Ich fand diese article hilfreich

Er schreibt Dinge in PHP, aber die Arbeit auf der Client-Seite ist ziemlich genau das gleiche. Insbesondere könnte sein CSS hilfreich sein.

1

Yahoo hat eine gute autocomplete control.

Sie haben eine sample here..

Offensichtlich hilft Ihnen das nicht dabei, die Daten zu erhalten - aber es sieht so aus, als ob Sie Ihre eigene Quelle haben und nicht wirklich nach Daten von Google suchen.

0

Diese Kontrolle wird oft als Wortrad bezeichnet. MSDN hat eine aktuelle walkthrough zum Schreiben eines mit LINQ. Es gibt zwei kritische Aspekte: verzögerte Ausführung und faule Auswertung. Der Artikel hat auch Quellcode.

Verwandte Themen