ホームページ >バックエンド開発 >PHPの問題 >PHPでのajaxは何を意味しますか

PHPでのajaxは何を意味しますか

青灯夜游
青灯夜游オリジナル
2022-03-10 15:04:393227ブラウズ

PHP では、ajax は中国語で「非同期 JavaScript および XML テクノロジー」を意味し、インタラクティブな Web アプリケーションを作成するための Web 開発テクノロジーを指します。ajax は、Web ページの非同期更新を可能にします。 require Web ページ全体を再読み込みすることなく、Web ページの一部を更新できる技術。

PHPでのajaxは何を意味しますか

このチュートリアルの動作環境: Windows7 システム、javascript1.8.5&&PHP7.1 バージョン、Dell G3 コンピューター。

Ajax とはどういう意味ですか?

ajax は、Asynchronous JavaScript and XML (非同期 JavaScript および XML テクノロジ) の略語で、インタラクティブな Web アプリケーションを作成するための Web 開発テクノロジを指します。

ajax ではありません。新しいプログラミング言語ですが、既存の標準を使用する新しい方法です。

ajax は、高速で動的な Web ページを作成するために使用されるテクノロジーです。バックグラウンドでサーバーと少量のデータを交換することによって。 Ajax を使用すると、Web ページを非同期的に更新できます。これは、ページ全体を再読み込みしなくても、Web ページの一部を更新できることを意味します。従来の Web ページ (Ajax を使用しない) のコンテンツを更新する必要がある場合は、Web ページ全体をリロードする必要があります。

上記の ajax の意味を読んだ後、ajax の長所と短所を簡単に見てみましょう。

ajax の利点:

1. 最大のポイントは、ページが更新されず、ユーザー エクスペリエンスが非常に優れていることです。

2. より高速な応答機能を備えた非同期モードを使用してサーバーと通信します。 。

3. これまでサーバーに負担がかかっていた作業の一部をクライアントに転送することで、クライアントの空き容量を利用して処理できるため、サーバーと帯域幅の負担が軽減され、スペースとブロードバンドのレンタルが節約されます。費用がかかります。また、サーバーの負担を軽減するために、ajax の原則は「オンデマンドでデータを取得する」ことで、冗長なリクエストと応答によるサーバーの負担を最小限に抑えることができます。

4. 標準化され広くサポートされているテクノロジーに基づいているため、プラグインや小さなプログラムをダウンロードする必要はありません。

5. Ajax を使用すると、インターネット アプリケーションをより小さく、より速く、より使いやすくすることができます。

ajax の欠点:

1. Ajax はブラウザの戻るボタンをサポートしていません。

2. セキュリティの問題 AJAX はサーバーとの対話の詳細を公開します。

3. 検索エンジンのサポートは比較的弱いです。

4. プログラムの例外メカニズムを破壊しました。

5. デバッグは簡単ではありません。

php での ajax の使用

ユーザーが上の入力ボックスに文字を入力すると、「showHint()」関数が実行されます。この関数は、「onkeyup」イベントによってトリガーされます:

<html>
<head>
<script>
function showHint(str)
{
    if (str.length==0)
    { 
        document.getElementById("txtHint").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest)
    {
        // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
        xmlhttp=new XMLHttpRequest();
    }
    else
    {    
        //IE6, IE5 浏览器执行的代码
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","gethint.php?q="+str,true);
    xmlhttp.send();
}
</script>
</head>
<body>

<p><b>在输入框中输入一个姓名:</b></p>
<form> 
姓名: <input type="text" onkeyup="showHint(this.value)">
</form>
<p>返回值: <span id="txtHint"></span></p>

</body>
</html>

ソース コードの説明:

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

入力ボックスが空でない場合、showHint() は次の手順を実行します。

  • XMLHttpRequest オブジェクトの作成

  • Create サーバー応答の準備ができたときに実行される関数

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

  • パラメーター (q) に注意してください。 URL の末尾に追加 (入力ボックスの内容を含む)

PHP ファイル

JavaScript を通じて上記で呼び出されたサーバー ページは次のとおりです。 「gethint.php」という名前の PHP ファイル。

「gethint.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;
?>

説明: JavaScript がテキストを送信した場合 (つまり、 strlen($q ) > ; 0)、その後:

  • JavaScript によって送信された文字に一致する名前を検索します

  • 一致するものが見つからない場合、これは文字列を応答します。 「提案なし」に設定されます

  • 一致する名前が 1 つ以上見つかった場合、応答文字列にはすべての名前が設定されます

  • 応答"txtHint" プレースホルダーに送信されます

PHP Ajax クロスドメインの問題の解決策

この記事では、Access をセットアップします-Control-Allow-Origin でクロスドメインを実現します。

例: クライアントのドメイン名は client.runoob.com で、要求されたドメイン名は server.runoob.com です。

ajax を使用して直接アクセスすると、次のエラーが発生します:

XMLHttpRequest cannot load http://server.runoob.com/server.php. No &#39;Access-Control-Allow-Origin&#39; header is present on the requested resource.Origin &#39;http://client.runoob.com&#39; is therefore not allowed access.

1. 単一のドメイン名によるアクセスを許可します

指定してくださいクロスドメイン アクセス用のドメイン名 (http:// client.runoob.com) を使用するには、http://server.runoob.com/server.php ファイルのヘッダーに次のコードを追加するだけです。

header(&#39;Access-Control-Allow-Origin:http://client.runoob.com&#39;);

2. 複数のドメイン名を許可する 複数のドメイン名を指定する場合は、

にアクセスしてください (http://client1.runoob.com、http://client2.runoob.com) 、など) クロスドメイン アクセスの場合は、http://server にアクセスするだけで済みます。次のコードを runoob.com/server.php ファイルの先頭に追加します:

$origin = isset($_SERVER[&#39;HTTP_ORIGIN&#39;])? $_SERVER[&#39;HTTP_ORIGIN&#39;] : &#39;&#39;;  
  
$allow_origin = array(  
    &#39;http://client1.runoob.com&#39;,  
    &#39;http://client2.runoob.com&#39;  
);  
 
if(in_array($origin, $allow_origin)){  
    header(&#39;Access-Control-Allow-Origin:&#39;.$origin);       
}

3すべてのドメイン名へのアクセスを許可する

すべてのドメイン名へのアクセスを許可するには、http:/ 次のコードを /server.runoob.com/server.php ファイルのヘッダーに追加します。 ##

header(&#39;Access-Control-Allow-Origin:*&#39;);

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPでのajaxは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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