DB에서 테이블을 채우기 위해 오랜 시간 동안 일해 왔습니다. 이 작업은 완료하는 데 여러 시간이 걸릴 수 있습니다. 그래서 진행률 표시 줄이 필요합니다. 페이지에 대해서만 계산하면 충분합니다. 지금까지 여러 솔루션을 찾았습니다 :스크립트간에 공유 변수를 구현하는 올바른 방법이나 서버 측 진행을 구현하는 방법은 무엇입니까?
- _SESSION. OK, 사용 된 대부분의 서버에서 작동하지만 크롬에서 ERR_RESPONSE_HEADERS_TOO_BIG 오류가 발생하고 세션 - 시작/세션 _ 기록 _ 클로즈가 루프에서 호출되어 일부 서버에서 "헤더가 이미 전송되었습니다"라는 오류가 발생합니다. 이 방법이 좋았지 만 이제 거부했습니다.
- long 연산의 루프 내부에서 ob_start/ob_end_flush 종류를 사용합니다. 이것은 작동하지 않습니다. 그것은 단지 버퍼 된 echo-ed를 스크립트가 끝난 후에 모두 표시합니다.
- db를 사용하여 공유 변수 저장 (아직 시도하지 않음)
- 별도의 (임시) 파일 사용. (아직 시도하지 않음).
저는 이미 긴 작업 (db 테이블 채우기)을위한 스크립트 하나와 JS가 진행 상태를 포함하는 공유 변수를 읽는 데 사용하는 스크립트를 구현했습니다. 이 두 스크립트는 .done 함수로 결과를 기대하는 jQuery .ajax 메소드를 호출했다.
다른 방법이 있습니까? 4) 변형을 사용하고 싶습니다만, 진행률 표시 줄을 구현하는 일반적인 방법은 무엇인지 알고 싶습니다.
감사합니다 :)
이러한 긴 작업은 일부 유형의 백그라운드 작업 관리자를 사용하여 실행하는 것이 좋습니다. 브라우저 세션을 사용하여 실행하지 않는 것이 좋습니다. 브라우저가 실행하도록 요청할 수는 있지만 실제 실행은 대기열에 있어야하며 백그라운드에서 실행되어야합니다. – DevZer0
이 솔루션을 사용해 보셨습니까 - http://spidgorny.blogspot.com/2012/02/progress-bar-for-lengthy-php-process.HTML? –
@ DevZer0 - 백그라운드 작업 관리자가 보입니다. 간단한 예제가 있습니까? – netanalyzer