Comment implémenter une fonction de chargement ajax simple en PHP

墨辰丷
Libérer: 2023-03-28 09:58:02
original
1725 Les gens l'ont consulté

Cet article présente principalement la méthode d'implémentation de la fonction de chargement ajax simple en PHP. Il analyse le principe, les compétences opérationnelles et les précautions associées du chargement ajax sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Les détails sont les suivants :

var xmlHttp;
function createXmlHttpReq() {
  if(window.ActiveXObject) {
    xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  } else if(window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
  }
}
function funMy(url) {
  createXmlHttpReq();
  try {
    xmlHttp.onreadystatechange = cb;//一定要在open()前,下边会有说明。在此处犯错了
    xmlHttp.open("GET","for.php?id="+url,true);
    xmlHttp.send(null);
  } catch(e) {
    alert("您访问的资源不存在");
  }
}
//回调函数
function cb() {
  if(xmlHttp.readyState==1) {
    alert("1-------------->");
    //在Google Chrome 浏览器里不显示loading图片,三秒后显示内容,问题已解决,下边有说明
    document.getElementById(&#39;ajax&#39;).innerHTML = "<img src=loading2.gif>";
    //document.getElementById(&#39;ajax&#39;).innerHTML = "Loading......";
  }
  if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
      var data = xmlHttp.responseText;
      document.getElementById(&#39;ajax&#39;).innerHTML = data;
  }
}
Copier après la connexion

Lors des tests, je suis resté bloqué sur Chrome. Veuillez consulter l'explication ci-dessous :

Si vous l'écrivez de cette façon, vous ne recevrez pas de réponse de .readyState==1

Car 1 signifie que .open() a été appelé

Mais .open() est appelé avant l'événement .onreadystatechange, il devrait donc vous être impossible de recevoir une réponse de .readyState==1

Par conséquent, si vous souhaitez recevoir .readyState= =1 =>.onreadystatechange, vous devez Avant .open()

Alors pourquoi le recevez-vous parfois ?

Parce que vous utilisez la même variable globale... Lors d'opérations continues, cela peut arriver car une requête xhr est toujours en attente de php. Pour l'initialiser à nouveau et déclencher

, vous devez d'abord décider de la méthode de traitement des données onreadystatechange, puis envoyer les données à traiter open()

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’apprentissage de chacun.


Recommandations associées :

Configuration de la boîte de chargement globale Ajax (Effet de chargement)

chargementEffet d'attente avant qu'Ajax ne renvoie les données (tutoriel graphique)

Ajax implémente l'effet de chargement

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!