Ich dachte bisher immer, die Live search funktion sucht in der Seite selbst. Für Ergebnisse auf älteren Seiten befragt man die Datenbank, indem man enter drückt.
Das ist aber wohl nicht ganz richtig, manchmal findet man Sachen, die NICHT auf der Seite sind trotzdem.
Wie funktioniert das?
livesearch Verständnisfrage
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: livesearch Verständnisfrage
Die Livesuche sucht in der Datenbank, und macht das mittels AJAX. Es ist also komplett unabhängig von dem, was derzeit auf der Seite ist. Dafür würde man die Browser-Suchfunktion bemühen.
Viele Grüße,
Garvin
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
So, mittlerweile bin ich schlauer. Livesearch verwendet ein typische Feature von web2.0 , naemlich XMLHttpRequest (http://blog.bitflux.ch/wiki/LiveSearch)
Da die beiden Ergebnisse der Suche mit livesearch und Enter druecken untgerschiedlich sind, muss also die sql-abfrage eine andere sein... na gut, dann muss ich wohl selber mal gucken
ups , da haben wir parallel getippt
Da die beiden Ergebnisse der Suche mit livesearch und Enter druecken untgerschiedlich sind, muss also die sql-abfrage eine andere sein... na gut, dann muss ich wohl selber mal gucken
ups , da haben wir parallel getippt
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Eigentlich dürften die Ergebnisse sich nicht unterscheiden, da in beiden Fällen die serendipity_searchEntries() funktion angesprochen wird...
Viele Grüße,
Garvin
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Ich glaub, ich habe ide Lösung.
Im Javascript wird nach 200 millisekunden timeout die Suche gestartet. wenn man nun etwas langsamer tippt, dann beginnt eine anrage schon, bevor der suchbegriff vollständig eingegeben worden ist. Die folge ist, das es zu keinen Treffer kommt, weil nur ganze wörtr gesucht werden.
Ich habe das Timeout auf 500 millisekunden verlängert, nun klappts besser
edit: aber ich habe dadurch mitbekommen, das Sternchensuche funktioniert. zwar nur trailing Sternchen, aber immerhin
also zene* findet z.b. zenega
Im Javascript wird nach 200 millisekunden timeout die Suche gestartet. wenn man nun etwas langsamer tippt, dann beginnt eine anrage schon, bevor der suchbegriff vollständig eingegeben worden ist. Die folge ist, das es zu keinen Treffer kommt, weil nur ganze wörtr gesucht werden.
Ich habe das Timeout auf 500 millisekunden verlängert, nun klappts besser
Code: Select all
function liveSearchStart() {
if (t) {
window.clearTimeout(t);
}
t = window.setTimeout("liveSearchDoSearch()",500);
}
also zene* findet z.b. zenega