我正在尝试创建一个简单的cgi perl脚本,从10到0递减计数;但是我似乎无法让它发挥作用。它一直告诉我malformed header from script. Bad header=HTTP/1.1 200 OK
。我是Perl和CGI脚本的新手,所以我确信它非常简单。
#!/usr/bin/perl
use warnings;
use strict;
use CGI::Push qw(:standard);
my $startingCountDown = 10;
do_push(-next_page => \&refresh, -last_page=> \&lastPage, -delay => 1 );
sub refresh
{
my ($cgi, $count) = @_;
return undef if ($startingCountDown - $count < 0);
my $num = $startingCountDown - $count;
my $page = $cgi->start_html();
$page .= $cgi->p("The count is $num").end_html();
return $page;
}
sub lastPage
{
my ($cgi, $count) = @_;
return start_html()."Blast Off".end_html();
}
如果我从终端(在我的Macbook上)运行此命令,则会收到以下错误:WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY.
。我已尝试在Safari和Chrome中运行此脚本,但似乎都不起作用。在这种情况下,我如何编写一个从10到1倒计时的功能脚本,每秒更改一次数字?感谢。
答案 0 :(得分:4)
&#34;服务器推送&#34; CGI::Push
正在使用的机制(具体而言,multipart/x-mixed-replace
)未得到广泛支持。您需要采用不同的方式来实现这一点;可能最好的方法是在Javascript中进行倒计时,而不是在服务器端。