Благодаря некоторым другим замечательным постам здесь (таким как this и that ), у меня есть несколько надежных методов для фонового процесса в скрипте Perl.
Тем не менее, в моей среде (IIS6 на Windows Server 2003), кажется, не совсем фон. Возьми этот скрипт:
use CGI::Pretty qw(:standard);
print header;
print start_html;
print "hi<br>";
system(1,qw(sleep 10));
print "bye";
print end_html;
Браузер будет оставаться «подключенным» в течение 10 секунд, пока выполняется спящий процесс. «Привет» и «пока» будут отображаться на экране, но браузер, похоже, ожидает чего-то большего от сервера (индикаторы выполнения Firefox 4 и IE6 продолжают медленно двигаться в течение этих 10 секунд).
Я бы хотел, чтобы пользователь (для моего реального приложения) поверил, что процесс полностью основан на заднем плане, и был бы полностью в состоянии закрыть веб-страницу. Пока индикатор выполнения все еще движется, я уверен, что они сядут и будут ждать, пока он остановится, прежде чем закрыть или уйти.
Просто чтобы прояснить ситуацию - процесс выглядит фоновым. Я могу закрыть веб-браузер. Реальная задняя работа продолжает выполняться (иногда до часа) без проблем. Я просто хотел бы прояснить это с точки зрения пользовательского интерфейса.
Спасибо!