Maison > développement back-end > Problème PHP > que signifie ajax en php

que signifie ajax en php

青灯夜游
Libérer: 2023-03-15 15:16:01
original
3227 Les gens l'ont consulté

En PHP, ajax signifie « technologie JavaScript et XML asynchrone » en chinois, qui fait référence à une technologie de développement Web permettant de créer des applications Web interactives ; ajax peut permettre des mises à jour asynchrones de pages Web, ce qui est une méthode qui ne nécessite pas de recharger l'intégralité de l'application. page Web. technologie qui peut mettre à jour certaines pages Web.

que signifie ajax en php

L'environnement d'exploitation de ce tutoriel : système windows7, version javascript1.8.5&&PHP7.1, ordinateur Dell G3.

Que signifie Ajax ?

ajax est l'abréviation de Asynchronous JavaScript and XML (asynchronous JavaScript and XML technology), qui fait référence à une technologie de développement Web permettant de créer des applications Web interactives.

ajax n'est pas un nouveau langage de programmation, mais un langage de programmation moderne. Il existe de nouvelles façons de normaliser.

ajax est une technologie utilisée pour créer des pages Web rapides et dynamiques. En échangeant de petites quantités de données avec le serveur en arrière-plan. Ajax permet aux pages Web d'être mises à jour de manière asynchrone. Cela signifie que certaines parties d'une page Web peuvent être mises à jour sans recharger la page entière. Si les pages Web traditionnelles (qui n’utilisent pas ajax) doivent mettre à jour leur contenu, la page Web entière doit être rechargée.

Après avoir lu la signification d'ajax ci-dessus, examinons brièvement les avantages et les inconvénients d'ajax.

Avantages d'ajax :

1. Le plus gros point est que la page ne s'actualise pas, et l'expérience utilisateur est très bonne.

2. Utilisez le mode asynchrone pour communiquer avec le serveur, avec une capacité de réponse plus rapide. .

3. Une partie du travail précédemment chargé par le serveur peut être transférée au client, en utilisant la capacité inactive du client pour le traiter, réduisant ainsi la charge sur le serveur et la bande passante, et économisant de l'espace et des coûts de location du haut débit. Et pour réduire la charge sur le serveur, le principe d'ajax est de « récupérer les données à la demande », ce qui peut minimiser la charge sur le serveur causée par les requêtes et réponses redondantes.

4. Basé sur une technologie standardisée et largement prise en charge, pas besoin de télécharger des plug-ins ou des applets.

5. Ajax peut rendre les applications Internet plus petites, plus rapides et plus conviviales.

Inconvénients d'ajax :

1 Ajax ne prend pas en charge le bouton Précédent du navigateur.

2. Problèmes de sécurité AJAX expose les détails de l'interaction avec le serveur.

3. Le support des moteurs de recherche est relativement faible.

4. Détruit le mécanisme d'exception du programme.

5. Pas facile à déboguer.

Utilisation d'ajax en php

Lorsque l'utilisateur tape des caractères dans la zone de saisie ci-dessus, la fonction "showHint()" sera exécutée. Cette fonction est déclenchée par l'événement "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>
Copier après la connexion

Explication du code source :

Si la zone de saisie est vide (str.length==0), cette fonction effacera le contenu de l'espace réservé txtHint et quittera la fonction.

Si la zone de saisie n'est pas vide, alors showHint() effectuera les étapes suivantes :

  • Créer un objet XMLHttpRequest

  • Créer une fonction qui s'exécute lorsque la réponse du serveur est prête

  • Envoyer une requête vers un fichier sur le serveur

  • Veuillez faire attention au paramètre (q) ajouté à la fin de l'URL (y compris le contenu de la zone de saisie)

Fichier PHP

La page du serveur appelée via JavaScript ci-dessus est un document PHP nommé "gethint.php".

Le code source dans "gethint.php" vérifie le tableau de noms et renvoie le nom correspondant au navigateur :

<?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;
?>
Copier après la connexion

Explication : Si JavaScript envoie du texte (c'est-à-dire strlen($q) > 0), alors se produit :

  • Trouver des noms correspondant aux caractères envoyés par JavaScript

  • Si aucune correspondance n'est trouvée, définissez la chaîne de réponse sur "aucune suggestion"

  • Si un ou plusieurs noms correspondants sont trouvés, utilisez toutes les chaînes de réponse de paramètre de nom

  • Envoyez la réponse à l'espace réservé "txtHint"

Solution aux problèmes inter-domaines PHP Ajax

Cet article implémente le cross-domain en définissant Access-Control-Allow-Origin .

Par exemple : le nom de domaine du client est client.runoob.com et le nom de domaine demandé est server.runoob.com.

Si vous utilisez directement ajax pour accéder, l'erreur suivante s'affichera :

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.
Copier après la connexion

1 Autoriser l'accès à un seul nom de domaine

Spécifiez un nom de domaine (http://client.runoob.com) pour cross. -accès au domaine, puis simplement l'en-tête du fichier http://server.runoob.com/server.php ajoutez le code suivant :

header(&#39;Access-Control-Allow-Origin:http://client.runoob.com&#39;);
Copier après la connexion

2 Autoriser l'accès à plusieurs noms de domaine

Spécifiez plusieurs noms de domaine (http://. client1.runoob.com, http://client2.runoob.com, etc.) pour un accès inter-domaines, il vous suffit d'ajouter le code suivant à l'en-tête du 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);       
}
Copier après la connexion

3. Autoriser tous les noms de domaine à accéder

allowed Pour accéder à tous les noms de domaine, il vous suffit d'ajouter le code suivant dans l'en-tête du http://server.runoob.com/server. fichier php :

header(&#39;Access-Control-Allow-Origin:*&#39;);
Copier après la connexion

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal