내 Ajax 요청이로드되는 동안 진행률 표시를 얻고 싶습니다. 이것은 내 ftp-backup-system 코드 스 니펫입니다. backup.php - 일부 단계를 실행 중이고 현재 단계를 $ _SESSION [ "step"]에 저장 중입니다. getStatus.php - 보내는 중 $ _SESSION [ "step "] jquery로 돌아 가기Ajax 및 getJSON 요청의 비동기 호출
문제 : 코드는 먼저 ajax 요청을 backup.php로 호출하고 완료되면 getStatus.php로 getJSON을 호출합니다. 누군가 내가 뭘 잘못하고 있는지 알아?
$.ajax({
type: "POST",
url: "backup.php",
data: $("#form").serialize()
});
(function checkStatus() {
$.getJSON("getStatus.php", function(data) {
alert("I am called when backup.php is finished. Why?");
# do some stuff, for example:
# data[0] = true/false #finished or not
# data[1] = $_SESSION["step"]
if (data[0])
setInterval(function(){ checkStatus(); }, 500);
# progressbar-refresh to data[1]
});
})();
미리 감사드립니다.
가I가 backup.php 및 getStatus.php PHP에서 세션을 사용하여이 서로 차단된다
(function checkStatus() {console.log ('called'); ...}) 콘솔에서 'called'는 이전 Ajax 요청이 완료된 후에도 계속 인쇄됩니까? –
각 단계에서 당신은 새로운 단계를 만들 때'setInterval (...) '을 사용하여 각 단계마다 새로운 구간을 만듭니다 ... -'setTimeout (checkStatus, 500)'를 대신 사용하십시오 – Andreas
진행 상황을 표시하고 싶습니다 바 모두 끝날 때까지 바? – pvnarula