Weitere Artikel aus dem Webentwickler Blog

Im zweiten Teil deises Tutorials müssen wir uns um das Abrufen und Anzeigen der Suchvorschläge kümmern. Hierzu definieren wir im <head> ein Skript, das alle wichtigen Funktionen enthält: ·    Ajax-Request absenden ·    Ajax-Response auswerten und anzeigen ·    Suchvorschläge ein- und ausblenden

Ajax-Request absenden Ein Problem mit dem Absenden des Ajax-Requests tritt immer dann ein, wenn mehrere Anfragen gleichzeitig bzw. kurz nacheinander gesendet werden und sich damit evtl. die Ankunft der einzelnen Responses überschneidet. Eine mögliche Fehlerquelle hierfür ist etwa, dass der Nutzer nicht nur einen Buchstaben, sondern gleich mehrere nacheinander eingibt, ohne dass der Server in dieser Geschwindigkeit reagieren könnte. Dieses Problem umgehen wir mit einem kleinen Trick: Bei Eintreten des onkeypress-Ereignisses wird der Ajax-Request nicht unmittelbar losgeschickt, sondern zunächst ein Timer gesetzt. Wird das Ereignis vor Ablauf des Timers nochmals aufgerufen, dann wird der Timer gelöscht und ein neuer gesetzt. Dies geht solange, bis der User eine Pause beim Schreiben einlegt und Ajax damit Zeit hat, die Ergebnisse anzuzeigen. Im Code sieht das wie folgt aus:

var timer = 0;
function getQuerys(q)
{
window.clearTimeout(timer);
timer = window.setTimeout('getQuerys2("'+escape(q)+'")',300);
}
var xml = null;
function getQuerys2(q)
{
if(window.XMLHttpRequest){ xml = new XMLHttpRequest(); }
else if(window.ActiveXObject)
{
try{ xml = new ActiveXObject('Msxml2.XMLHTTP'); }
catch(e1)
{
try{ xml = new ActiveXObject('Microsoft.XMLHTTP'); }
catch(e2){ }
}
}
if(xml != null)
{
xml.open('GET','ajax_search_query.php?q='+q,true);
xml.onreadystatechange = showQuerys;
xml.send(null);
}
}
Die Funktion getQuerys() dient hier also lediglich als Vorbereiter und Puffer zwischen User und Ajax - die eigentliche Arbeit macht getQuerys2(). Der Abruf der Daten ist damit bewerkstelligt.

Daten verarbeiten … Als Letztes müssen wir uns nur noch darum kümmern, die abgerufenen Daten zu verarbeiten und als Suchvorschläge anzuzeigen. Hierzu lesen wir einfach die XML-Elemente <Item …> aus und zeigen jeweils die Werte der Attribute Name und Anzahl innerhalb einer einfachen Tabelle an. Den Tabellencode geben wir dann innerhalb unseres dafür vorgesehenen <div> -Tags aus:

Ganzen Artikel lesen... 

Kundenkommentare
Social Bookmarks
elo-web bookmarken bei: Mr. Wong elo-web bookmarken bei: Webnews elo-web bookmarken bei: Icio elo-web bookmarken bei: Oneview elo-web bookmarken bei: Yigg elo-web bookmarken bei: Linkarena elo-web bookmarken bei: Digg elo-web bookmarken bei: Reddit elo-web bookmarken bei: Simpy elo-web bookmarken bei: StumbleUpon elo-web bookmarken bei: Netscape elo-web bookmarken bei: Furl elo-web bookmarken bei: Yahoo elo-web bookmarken bei: Blogmarks elo-web bookmarken bei: Diigo elo-web bookmarken bei: Technorati elo-web bookmarken bei: Newsvine elo-web bookmarken bei: Blinkbits elo-web bookmarken bei: Ma.Gnolia elo-web bookmarken bei: Smarking elo-web bookmarken bei: Netvouz elo-web bookmarken bei: Folkd elo-web bookmarken bei: Spurl elo-web bookmarken bei: Google elo-web bookmarken bei: Blinklist
URL zu dieser Seite
Einfach den Quelltext kopieren und auf Ihrer Webseite einbinden

Kontakt
Newsletter | Kontakt | RSS Feed
Warenkorb: 0 Artikel
Gesamtwert: EUR 0,00
Home PHP/MySQL & JavaScript  Suchvorschläge mit Ajax anzeigen lassen - Teil II