Heim  >  Artikel  >  Backend-Entwicklung  >  Was bedeutet Ajax in PHP?

Was bedeutet Ajax in PHP?

青灯夜游
青灯夜游Original
2022-03-10 15:04:393078Durchsuche

In PHP bedeutet Ajax auf Chinesisch „asynchrone JavaScript- und XML-Technologie“, was sich auf eine Webentwicklungstechnologie zum Erstellen interaktiver Webanwendungen bezieht. Ajax kann asynchrone Aktualisierungen von Webseiten ermöglichen, eine Methode, die kein Neuladen der gesamten Seite erfordert Webseite-Technologie, die einige Webseiten aktualisieren kann.

Was bedeutet Ajax in PHP?

Die Betriebsumgebung dieses Tutorials: Windows7-System, Javascript 1.8.5 und PHP 7.1-Version, Dell G3-Computer.

Was bedeutet Ajax?

ajax ist die Abkürzung für Asynchronous JavaScript and XML (asynchrone JavaScript- und XML-Technologie) und bezieht sich auf eine Webentwicklungstechnologie zum Erstellen interaktiver Webanwendungen.

ajax ist keine neue Programmiersprache, sondern eine moderne Programmiersprache. Es gibt neue Möglichkeiten zur Standardisierung.

ajax ist eine Technologie zur Erstellung schneller und dynamischer Webseiten. Durch den Austausch kleiner Datenmengen mit dem Server im Hintergrund. Ajax ermöglicht die asynchrone Aktualisierung von Webseiten. Das bedeutet, dass Teile einer Webseite aktualisiert werden können, ohne dass die gesamte Seite neu geladen werden muss. Wenn herkömmliche Webseiten (die kein Ajax verwenden) Inhalte aktualisieren müssen, muss die gesamte Webseite neu geladen werden.

Nachdem wir oben die Bedeutung von Ajax gelesen haben, werfen wir einen kurzen Blick auf die Vor- und Nachteile von Ajax.

Vorteile von Ajax:

1. Der größte Punkt ist, dass die Seite nicht aktualisiert wird und die Benutzererfahrung sehr gut ist.

2. Verwenden Sie den asynchronen Modus für die Kommunikation mit dem Server mit schnellerer Reaktionsfähigkeit. .

3. Ein Teil der zuvor vom Server belasteten Arbeit kann auf den Client übertragen werden, wodurch die ungenutzte Kapazität des Clients für die Verarbeitung genutzt wird, wodurch die Belastung des Servers und der Bandbreite verringert und Platz und Kosten für die Breitbandmiete gespart werden. Und um die Belastung des Servers zu verringern, besteht das Prinzip von Ajax darin, „Daten bei Bedarf abzurufen“, wodurch die Belastung des Servers durch redundante Anforderungen und Antworten minimiert werden kann.

4. Basierend auf standardisierter und weithin unterstützter Technologie, keine Notwendigkeit, Plug-Ins oder Applets herunterzuladen.

5. Ajax kann Internetanwendungen kleiner, schneller und benutzerfreundlicher machen.

Nachteile von Ajax:

1. Ajax unterstützt den Zurück-Button des Browsers nicht.

2. Sicherheitsprobleme AJAX legt die Details der Interaktion mit dem Server offen.

3. Die Unterstützung für Suchmaschinen ist relativ schwach.

4. Den Ausnahmemechanismus des Programms zerstört.

5. Nicht einfach zu debuggen.

Ajax in PHP verwenden

Wenn der Benutzer Zeichen in das Eingabefeld oben eingibt, wird die Funktion „showHint()“ ausgeführt. Diese Funktion wird durch das „onkeyup“-Ereignis ausgelöst:

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

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 showHint() die folgenden Schritte aus:

  • Erstellen Sie ein XMLHttpRequest-Objekt.

  • Erstellen Sie eine Funktion, die ausgeführt wird, wenn die Serverantwort bereit ist.

  • Senden Sie eine Anfrage in eine Datei auf dem Server

  • Bitte achten Sie auf den am Ende der URL hinzugefügten Parameter (q) (einschließlich des Inhalts des Eingabefelds)

PHP-Datei

Die Serverseite wird aufgerufen Das obige JavaScript ist ein PHP-Dokument mit dem Namen „gethint.php“.

Der Quellcode in „gethint.php“ überprüft das Namensarray und gibt den entsprechenden Namen an den Browser zurück:

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

Erklärung: Wenn JavaScript einen beliebigen Text sendet (z. B. strlen($q) > 0), dann tritt Folgendes auf:

  • Suchen Sie Namen, die mit den von JavaScript gesendeten Zeichen übereinstimmen.

  • Wenn keine Übereinstimmung gefunden wird, setzen Sie die Antwortzeichenfolge auf „Kein Vorschlag“.

  • Wenn ein oder mehrere übereinstimmende Namen gefunden werden, verwenden Sie alle Antwortzeichenfolgen für die Namenseinstellung.

  • Senden Sie die Antwort an den Platzhalter „txtHint“

PHP Ajax Cross-Domain-Problemlösung

Dieser Artikel implementiert Cross-Domain durch Festlegen von Access-Control-Allow-Origin .

Zum Beispiel: Der Domänenname des Clients lautet client.runoob.com und der angeforderte Domänenname lautet server.runoob.com.

Wenn Sie Ajax direkt für den Zugriff verwenden, wird der folgende Fehler angezeigt:

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 Erlauben Sie einem einzelnen Domänennamen den Zugriff.

Geben Sie einen Domänennamen (http://client.runoob.com) für Cross an -Domänenzugriff, dann fügen Sie einfach im Dateiheader http://server.runoob.com/server.php den folgenden Code hinzu:

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

2 Erlauben Sie den Zugriff mehrerer Domänennamen

Geben Sie mehrere Domänennamen an (http://. client1.runoob.com, http://client2.runoob.com usw.) für den domänenübergreifenden Zugriff müssen Sie nur den folgenden Code zum Header von http://server.runoob.com/server hinzufügen. PHP-Datei:

$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. Allen Domänennamen den Zugriff erlauben

allowed Um auf alle Domänennamen zuzugreifen, müssen Sie nur den folgenden Code zum Header von http://server.runoob.com/server hinzufügen. PHP-Datei:

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

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas bedeutet Ajax in PHP?. 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