2010-01-23 2 views
1

에서 jQuery를 비동기 다중 응답을 확인합니다. 이를 클릭하면 jQuery $ .get() AJAX가 서버의 response.php를 다시 호출하고 결과를 자바 스크립트 콜백 함수 인 getResponse (sData)에 보내 run.php의 HTML에서 브라우저에 다시 표시합니다. response.php가 작업 목록을 통해 실행될 때 echo 명령을 사용하여 응답을 반향시키고 getResponse가 DIV를 해당 상태로 업데이트 할 때 해당 상태로 이동하도록 응답을 표시합니다. 그래서, response.php 안에 5 단계가 있고, 따라서 getResponse()에 5 개의 echo 문이 있다고 가정 해 봅시다. 어떻게 그것이 "실행"이라고에 버튼이있는 run.php이 하나의 PHP 스크립트를 실행

나는이 작업을 얻을려고했는데, 무슨 일 jQuery를 기다리는 후 오히려 5 개 응답과 함께 간다 보내는 것보다, 한 번에 하나 개의 응답을 전송한다는 것입니다.

기술은 무엇입니까?

물어 이유는 내가 파일의 무리에 무언가를하는 스크립트를 가지고있다. 첫 번째 작업은 파일 수이므로 진행률 표시 줄을 업데이트합니다. 그런 다음 파일을 실행하면서 1000 개의 파일마다 진행률 표시 줄을 증가시켜야합니다.

+0

루프에서 아약스 요청을 보내려고 했습니까? – Darmen

+0

문제 response.php가 실행되는 데 오랜 시간이 걸리는 문제가 있습니다. 평균 약 300,000 개의 파일을 세는 것으로 시작합니다. 그런 다음 데이터베이스로 읽어들입니다. 웹 페이지가 진행되는 동안 진행률 표시 줄을 업데이트해야합니다. – Volomike

답변

1

난 그냥 하나의 호출에 여러 반응을 해당 아약스 전화를 할 수있는 방법이 없다 생각 ...하지만 내가 무엇을 제안 할 수있는 것은 당신의 작업 기능의 모든 단계에서, 업데이트, 당신은 PHP에서 세션을 ... 그리고 당신이 정말로 XMLHttpRequest를 가진 진전을 얻을 수 없기 때문에 해당 세션은 ... 다음 업데이트가 일어난 경우 ...이 경우 업데이트를 한 후 당신이해야 할 일을 해당 세션을 확인 다른 Ajax 호출 ....

+0

내가 분명하지 않다면 나에게 묻는다. – Reigel

+0

분명히 말해서 response.php는 300,000 개의 파일에 대해 프로세스를 실행해야하며 실행하는 데 오랜 시간이 걸린다. response.php는 한 번에 1000 개의 파일 만 처리해야하는데, 이는 효율적이지 않지만 작동 할 것입니다. – Volomike

+0

아! 나는 가질지도 모른다. response.php가 실행되지만 세션 var가 업데이트됩니다. 또 다른 스크립트 인 check.php를 사용하여 세션 var를 주기적으로 확인할 수 있습니다. 이게 네가 말하는거야? – Volomike

0

을 , 나는 AJAX 호출을 수행하는 다른 방법들을 살펴볼 것을 제안한다. 그 중 하나가 iframe을 통해 있습니다. 숨겨진 iframe을 만들고, request.php의 소스를 설정 한 다음, 주기적으로 내용을 점검 할 수 있습니다. 모든 도메인과 제한 사항이 적용되지 않기 때문에 가능해야합니다. 정상 브라우저 창에서 서로 다른 아니기 때문에

은 iframe은 주기적으로 요청이 아직 완료되지 않은 경우에도 DOM으로 가져 데이터를 적용한다는 것을 의미 작동 할 수 있습니다. 브라우저마다 다른 방식으로 문제가 발생할 수 있습니다. IE는 4K 이상인 경우에만 새 콘텐츠를 표시합니다. 그러나 그것을 극복하는 것이 가능합니다.

그래서 새로운 숨겨진 iframe을 만들고, PHP 스크립트에 src 속성을 추가하고, 스크립트에 클라이언트에게 주기적으로 글을 쓰게하고, 클라이언트가 작성한 내용을 확인하고 반짝이는 GUI 물건으로 변환합니다.

관련 문제