ホームページ >ウェブフロントエンド >jsチュートリアル >AJax は Baidu 検索バーと同様の機能を実装します

AJax は Baidu 検索バーと同様の機能を実装します

韦小宝
韦小宝オリジナル
2017-12-30 20:03:401557ブラウズ

以下は、簡単な Baidu 検索バー関数の ajax 実装です。ユーザーが上の入力ボックスに文字を入力すると、関数「showHint()」が実行されます。以下に、ajax のサンプルコードを通して非常に詳しく紹介しますので、ajax に興味のある友人は一緒に見てください

インターンシップ中に非同期送信機能を使用する必要があるため、ajax をすぐに理解しようとしました。ああ、確かに、Web アプリケーション開発では、jquery や ajax を理解していないと、どれだけ派手な機能を使っても役に立たないと感じました。インターネットが実現できるのです。

早速、簡単な Baidu 検索バー関数の ajax 実装を示します。ユーザーが上の入力ボックスに文字を入力すると、関数「showHint()」が実行されます。この関数は、「onkeyup」イベントによってトリガーされます:


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();
}


ソースコードの説明:

入力ボックスが空 (str.length==0) の場合、この関数は次の内容をクリアします。 txtHint プレースホルダーを入力し、関数を終了します。

入力ボックスが空でない場合、showHint() 関数は次のタスクを実行します:

XMLHttpRequest オブジェクトを作成する

サーバーの応答の準備ができたら関数を実行する

サーバー上のファイルにリクエストを送信する

URL A パラメータ q (入力ボックスの内容を含む) を追加したことに注意してください。もちろん、要求されたファイルは php で記述されており、通常のページと本質的には変わりません。

<?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;
?>


百度の面接でも同様の質問があったそうですが、実際、理解してみるとこれに過ぎませんでした。

上記は、Baidu 検索バーと同様の機能を実装するために編集者が導入した AJax 実装です (主にインタビューで見られます)。 !

関連する推奨事項:


Ajax は未定義の理由分析として JSON データを取得します_AJAX 関連

jquery は ajaxfileupload 非同期アップロード プラグインを実装します

J によって実装される Ajax と同一オリジン戦略の詳細な説明す

以上がAJax は Baidu 検索バーと同様の機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。