2010-03-17 3 views
1

저는 백그라운드에서 스크립트를 실행하고 html 페이지에 stdout을 보여주는 파이썬 CGI를 가지고 있습니다. 사용자가 페이지의 일부 단추를 클릭하면 스크립트가 실행됩니다.CGI에서 백그라운드로 파이썬 스크립트 실행하기

내 문제는 스크립트 실행이 시작되어 사용자가 페이지의 다른 클라이언트 측 기능을 사용할 수없는 경우입니다.

내가 원하는 것은 : 사용자가 버튼을 클릭 할 때 스크립트가 백그라운드에서 실행되어야하며 실행이 완료되면 CGI에 알려야합니다. 그런 다음 CGI 프로그램은 스크립트의 표준 출력을 실행해야합니다.

어떻게이 작업을 수행 할 수 있습니까?

답변

2

글쎄, 짧은 답변 : 할 수 없습니다.

중간 답변 : CGI 빨기.

긴 답변 : CGI는 스크립트를 실행하고 스크립트가 인쇄 한 내용을 브라우저로 반환하여 작동합니다. 스크립트가 실행 중이면 브라우저가 대기합니다. 스크립트가 백그라운드 작업을 실행하고 브라우저에 데이터를 반환하면 백그라운드 작업은 이미 완료 되었기 때문에 CGI 스크립트에 알릴 수 없습니다.

대체 솔루션을 선택해야합니다.

백그라운드 작업의 결과를 파일, 데이터베이스 또는 기타 영구 저장 장치에 저장하고 페이지의 다른 링크를 사용하여 저장된 결과를 검색하고 표시하는 다른 코드를 실행하는 데이터를 사용자가 요청하도록합니다 그들.

또 다른 방법은 브라우저에서 AJAX 기술을 사용하는 것입니다. 백그라운드에서 데이터 요청을 수행하는 자바 스크립트 코드를 작성하십시오. 따라서 스크립트가 실행되는 동안 브라우저는 다른 페이지 요소에 응답 할 수 있습니다.

+0

Thans nosklo. 단순히 바쁜 대신 스크립트를 실행할 때 로딩 아이콘을 보여줄 수있는 방법이 있습니까? – Cagey

+0

@Cagey : 일반적으로 자바 스크립트를 사용하여 요청을 처리합니다 (AJAX). – nosklo

+0

도움을 주셔서 감사합니다 nosklo. 그것은 매우 유용했다 :) – Cagey

관련 문제