1

10から0までカウントダウンする単純なcgiperlスクリプトを作成しようとしています。しかし、私はそれを機能させることができないようです。それは私に言い続けます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までカウントダウンし、毎秒数字を変更する機能するスクリプトをどのように作成しますか?ありがとう。

4

1 に答える 1

4

CGI::Push(特に ) を使用している「サーバー プッシュ」メカニズムmultipart/x-mixed-replaceは、広くサポートされていません。これを実装するには、別の方法を選択する必要があります。おそらく最善の方法は、サーバー側ではなく Javascript でカウントダウンを行うことです。

于 2012-07-18T01:14:35.247 に答える