>백엔드 개발 >PHP 튜토리얼 >PHP에서 간단한 Ajax 로딩 기능을 구현하는 방법

PHP에서 간단한 Ajax 로딩 기능을 구현하는 방법

墨辰丷
墨辰丷원래의
2018-05-29 10:07:421799검색

본 글은 PHP에서 간단한 ajax Loading 로딩 기능을 구현하는 방법을 주로 소개하고, Ajax 로딩의 원리와 조작 기술, 관련 주의사항을 예시 형태로 분석해 놓았으니 필요한 친구들이 참고할 수 있습니다

자세한 내용은 다음과 같습니다. :

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

테스트 중에 Chrome에서 멈췄습니다. 아래 설명을 참고해주세요.

이렇게 작성하면 .readyState==1이라는 응답을 받지 못합니다

1은 .open()이 호출되어 완료되었음을 의미하기 때문입니다

하지만 .open()은 .onreadystatechange 이벤트 이전에 호출되므로 .readyState==1

의 응답을 받는 것이 불가능해야 합니다. 따라서 .readyState==1 =>.onreadystatechange의 응답을 받으려면 그 이전이어야 합니다. .open()
그럼 왜 가끔 받나요?

같은 전역 변수를 사용하기 때문에... 연속 작업 중에 xhr 요청이 여전히 php를 기다리고 있기 때문에 다시 초기화하여 트리거될 수 있습니다

해야 합니다 먼저readystatechange에 대한 데이터 처리 방법을 결정한 다음 처리할 데이터를 보냅니다. open()

위 내용은 이 글의 전체 내용이므로 모든 분들의 학습에 도움이 되기를 바랍니다.


관련 권장 사항:

Ajax 전역 로딩 상자(로딩 효과) 구성

데이터를 반환하기 전의 Ajax loading대기 효과(그래픽 튜토리얼)

Ajax는 로딩을 구현합니다. 효과

위 내용은 PHP에서 간단한 Ajax 로딩 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.