Heim >Backend-Entwicklung >PHP-Tutorial >So implementieren Sie eine einfache Ajax-Ladefunktion in PHP

So implementieren Sie eine einfache Ajax-Ladefunktion in PHP

墨辰丷
墨辰丷Original
2018-05-29 10:07:421834Durchsuche

In diesem Artikel wird hauptsächlich die Methode zur Implementierung einer einfachen Ajax-Ladefunktion in PHP vorgestellt. Er analysiert das Prinzip, die Betriebsfähigkeiten und die damit verbundenen Vorsichtsmaßnahmen in Form von Beispielen.

Die Details sind wie folgt:

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

Während des Tests blieb ich bei Chrome hängen. Bitte beachten Sie die Erklärung unten:

Wenn Sie es so schreiben, erhalten Sie keine Antwort von .readyState==1

Denn 1 bedeutet, dass .open() aufgerufen wurde

Aber .open() wird vor dem .onreadystatechange-Ereignis aufgerufen, daher sollte es für Sie unmöglich sein, eine Antwort von .readyState==1 zu erhalten

Daher, wenn Sie .readyState= erhalten möchten =1 =>.onreadystatechange, Sie müssen Vor .open()
Warum erhalten Sie es also manchmal?

Weil Sie dieselbe globale Variable verwenden ... Während des kontinuierlichen Betriebs kann es passieren, weil Eine XHR-Anfrage wartet noch auf PHP. Um sie erneut zu initialisieren und

auszulösen, sollten Sie sich zunächst für die Datenverarbeitungsmethode onreadystatechange entscheiden und dann die zu verarbeitenden Daten open()

senden

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er allen beim Lernen hilft.


Verwandte Empfehlungen:

Konfiguration der globalen Ajax-Ladebox (Ladeeffekt)

LadenWarteeffekt, bevor Ajax Daten zurückgibt (grafisches Tutorial)

Ajax implementiert den Ladeeffekt

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine einfache Ajax-Ladefunktion 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