Heim  >  Artikel  >  Web-Frontend  >  AJax implementiert ähnliche Funktionen wie die Baidu-Suchleiste

AJax implementiert ähnliche Funktionen wie die Baidu-Suchleiste

韦小宝
韦小宝Original
2017-12-30 20:03:401438Durchsuche

Das Folgende ist eine Ajax-Implementierung einer einfachen Baidu-Suchleistenfunktion. Wenn der Benutzer Zeichen in das Eingabefeld oben eingibt, wird die Funktion „showHint()“ ausgeführt. Das Folgende ist eine sehr detaillierte Einführung für Sie durch den Ajax-Beispielcode. Freunde, die sich für Ajax interessieren, sollten einen Blick darauf werfen

Während des Praktikums musste ich die asynchrone Übermittlungsfunktion verwenden, also habe ich versucht, es zu verstehen Ajax und ich hatte sofort das Gefühl, dass das Lernen ein Tropfen auf den heißen Stein ist. Wenn man sich bei der Entwicklung von Webanwendungen nicht auskennt, ist es meiner Meinung nach wirklich nutzlos dass alle ausgefallenen Funktionen des Internets realisiert werden können.

Hier ist ohne weiteres Ajax zum Implementieren einer einfachen Baidu-Suchleistenfunktion. Wenn der Benutzer Zeichen in das Eingabefeld oben eingibt, wird die Funktion „showHint()“ ausgeführt. Diese Funktion wird durch das Ereignis „onkeyup“ ausgelöst:


function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementByIdx_x("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementByIdx_x("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.asp?q="+str,true);
xmlhttp.send();
}


Erläuterung des Quellcodes:

Wenn das Eingabefeld leer ist (str.length==0), löscht diese Funktion den Inhalt des txtHint-Platzhalters und beendet die Funktion.

Wenn das Eingabefeld nicht leer ist, führt die Funktion showHint() die folgenden Aufgaben aus:

Erstellt ein XMLHttpRequest-Objekt

Führt die Funktion aus, wenn die Serverantwort bereit ist

Anfordern einer an den Server gesendeten Datei

Bitte beachten Sie, dass wir der URL einen Parameter q (mit dem Inhalt des Eingabefelds) hinzugefügt haben

Die angeforderte Datei wird geschrieben php, natürlich, was alles in Ordnung ist, es gibt keinen wesentlichen Unterschied zu normalen Seiten:


<?php
// 用名字来填充数组
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
//获得来自 URL 的 q 参数
$q=$_GET["q"];
//如果 q 大于 0,则查找数组中的所有提示
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
// 如果未找到提示,则把输出设置为 "no suggestion"
// 否则设置为正确的值
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//输出响应
echo $response;
?>


Ich habe gehört, dass es so ist Ähnlich wie damals, als ich zu einem Interview nach Baidu ging. Der Titel ist eigentlich nichts weiter, wenn man ihn einmal verstanden hat.

Das Obige ist die vom Herausgeber eingeführte AJax-Implementierung, um Funktionen zu implementieren, die der Baidu-Suchleiste ähneln (meist in Interviews zu sehen). Ich hoffe, dass sie für alle hilfreich ist! !

Verwandte Empfehlungen:

Analyse der Gründe, warum Ajax JSON-Daten als undefinierte_AJAX-bezogen erhält

jquery-Implementierung des Ajaxfileupload-Tutorials zum asynchronen Upload-Plugin

Detaillierte Erläuterung der von JS implementierten Ajax- und Same-Origin-Strategie

Das obige ist der detaillierte Inhalt vonAJax implementiert ähnliche Funktionen wie die Baidu-Suchleiste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn