여기 내 문제가 있습니다.스크립트 백엔드 실행을 기반으로 진행률 표시 줄을 표시하도록 AJAX 인터페이스를 설계하는 방법
- I는 입력 X에 기초하여 XML 출력 파일을
- I 호출 다른 파일을 상기 (1) (ⅰ 많은 의미) X에 대한 상이한 수와 회 10000 파일
사용자가 "이동"을 클릭하면 10000 개의 X를 모두 통과해야하며 동시에 수행 된 작업의 진행 상황을 보여야합니다. (헴은 10 초에 한 번 업데이트 될 수 있습니다).
어떻게해야합니까? 나는 아이디어가 필요해. 나는 AJAX와 물건에 대한 방법을 안다. 그러나 나의 프로그램이 취해야하는 구조는 무엇인가?
편집
그래서 난 아래의 대답에 따라 세션 변수에 내 출력을 저장했다. 그런 다음 대답을 출력합니다. 무슨 일이 일어나고 :
나는 loong 스크립트를 실행할 때. 1 분 안에 말을 실행합니다. 하지만 내 말은 (새 창에서) 내 SESSION 변수를 출력하는 파일을 열면 첫 번째 스크립트가 실행됩니다. 어느 것이 내가 원하는 것과 완전히 반대입니다. 뭐가 문제 야? 그것은 내 syste/서버가 여러 요청을 처리하거나 무엇입니까?
편집 2
내가 파일 접근 방식 사용 : 내가 원하는 것을 읽으려면 을 기능이 있습니다
> <?php include_once '../includeTop.php'; echo
> util::readFromLog("../../Files/progressData.tmp"); ?>
및 다른 스크립트
$processed ++;
util::writeToLog($dir.'/progressData.tmp', "Files processed: $processed");
에서
:public static function writeToLog($file,$data) {
$f = fopen($file,"w");
fwrite($f, $data);
fclose($f);
}
public static function readFromLog($file) {
return file_get_contents($file);
}
하지만 여전히 동일한 문제가 지속됩니다. 나는 수작업으로 1, 2, 3 등으로 업데이트 된 gettin 파일을 볼 수있다. 그러나 php로 스크립트를 실행하면 원래 스크립트가 출력 될 때까지 기다린다.
EDIT 3
확인 마침내 해결책을 발견 하였다. php 파일에서 출력을 찾는 대신 지금 로그를 직접 이동하여 찾으십시오.
안녕을 사용할 수 있습니다 ,이 코드를 사용하여 시도하고 오류가 발생했습니다. 나는 그 질문에서 그것을 업데이트 할 것이다. 똑같이 들여다보십시오. – footy
@footy : 느린 스크립트가 완료 될 때까지 서버가 진행 요청에 전혀 응답하지 않습니까? 아니면 즉시 응답하지만 잘못된 값으로 응답합니까? – Flambino
@footy : 내 대답을 업데이트했습니다. – Flambino