나는 PHP에서 무거운 이미지 조작을하고있어, 어떻게 진행되고 있는지 사용자에게 보여주고 싶습니다. 그래서 나는이 같은 일을 시도 :세션을 사용하여 무거운 PHP의 진행
for($i = 0; $i < $rowCount; $i++) {
session_start();
$_SESSION['progress'] = $i/ $rowCount;
session_write_close();
processLine($i);
}
을 그리고 내가 AJAX는 기본적으로 $ _SESSION [ '진보']의 값을 반환 다른 PHP 파일 호출을 사용하고 있습니다. 문제는 설정되지 않았습니다. 파일 당 두 번 이상 세션을 시작해서는 안되기 때문입니까? 방금 세션을 열고 각 행 사이를 닫지 않으면 SESSION 변수가 잠기고 전체 이미지 조작이 완료 될 때까지 폴링 파일이 처리되지 않습니다.
세션을 사용하여 작동하도록하는 방법은 없나요? 데이터베이스 나 파일에 진행 상황을 넣으면 작동하는 것 같지만 속도가 느리고 사용자를 식별하는 데 약간의 작업을해야합니다 (ips 또는 세션 ID 사용). 세션을 사용하면 이러한 일이 처리됩니다.
네, 그게 문제라고 생각 했어요. 그래서 프로세스에서 세션을 잠금 해제 할 수 없으므로 다른 프로세스에서 진행 상황을 확인하는 데 사용할 수 있습니다. – marcusklaas
아니요. 예를 들어, 처리중인 이미지 이름의 이름을 따온 임시 파일을 만든 다음 해당 임시 파일에 진행률을 저장하면 Ajax가 anot에 액세스해야합니다. checkstatus.php? f = filename – Dmitri
또한 memcache를 사용하는 경우 진행 결과를 memcache에 저장하는 것이 훨씬 빠르고 빠르며 임시 파일을 사용하는 것보다 빠릅니다. – Dmitri