본 글은 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('ajax').innerHTML = "<img src=loading2.gif>"; //document.getElementById('ajax').innerHTML = "Loading......"; } if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { var data = xmlHttp.responseText; document.getElementById('ajax').innerHTML = data; } }
테스트 중에 Chrome에서 멈췄습니다. 아래 설명을 참고해주세요.
이렇게 작성하면 .readyState==1이라는 응답을 받지 못합니다
1은 .open()이 호출되어 완료되었음을 의미하기 때문입니다
하지만 .open()은 .onreadystatechange 이벤트 이전에 호출되므로 .readyState==1
의 응답을 받는 것이 불가능해야 합니다. 따라서 .readyState==1 =>.onreadystatechange의 응답을 받으려면 그 이전이어야 합니다. .open()
그럼 왜 가끔 받나요?
같은 전역 변수를 사용하기 때문에... 연속 작업 중에 xhr 요청이 여전히 php를 기다리고 있기 때문에 다시 초기화하여 트리거될 수 있습니다
해야 합니다 먼저readystatechange에 대한 데이터 처리 방법을 결정한 다음 처리할 데이터를 보냅니다. open()
위 내용은 이 글의 전체 내용이므로 모든 분들의 학습에 도움이 되기를 바랍니다.
관련 권장 사항:
데이터를 반환하기 전의 Ajax loading대기 효과(그래픽 튜토리얼)
위 내용은 PHP에서 간단한 Ajax 로딩 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!