如何从Perl CGI脚本中不断通知用户进度?
发布时间:2020-12-15 21:44:22 所属栏目:大数据 来源:网络整理
导读:我有这个Perl脚本位于我的Apache服务器的cgi-bin文件夹中: #!/usr/bin/perl use strict;use warnings;$| = 1;print "Content-type: text/htmlrnrn";print "Hello there!br /nJust testing .br /n";my $top = 5;foreach (1..$top) { print "i = $_br /
我有这个Perl脚本位于我的Apache服务器的cgi-bin文件夹中:
#!/usr/bin/perl use strict; use warnings; $| = 1; print "Content-type: text/htmlrnrn"; print "Hello there!<br />nJust testing .<br />n"; my $top = 5; foreach (1..$top) { print "i = $_<br />n"; sleep 1; } 我想在这里实现的是逐步更新网页以向用户显示更新状态.然而,我实际上得到的是在延迟5秒之后的整个输出. 有什么办法可以编写一个能够不断告知用户进度的脚本吗?我有一个脚本需要很长时间才能完成,我希望能够实时看到它的进度而不是完整的脚本. 我也尝试将autoflush模式设置为off($| = 0),但即便如此也没有做任何事情. 解决方法
兰德尔施瓦茨在
Watching long processes through CGI中表现出更好的方式.
也就是说,说谎内容类型无济于事.以下脚本完全按照您希望它在使用Apache 2.2的Windows XP上执行的操作(因为最后一行输出需要十秒钟): #!/usr/bin/perl use strict; use warnings; use CGI qw(:cgi); print header('text/plain'); $| = 1; print "Job startedn"; for ( 1 .. 10 ) { print "$_n"; sleep 1; } 现在,如果您要发送HTML,您无法避免这样的事实,即大多数浏览器会等到他们认为足够的页面才能开始呈现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |