サーバープッシュについて
[上に]
[前に]
[次に]
アーサー
2000/02/17(木) 17:37:53
サーバープッシュを使用して
サーバーの状態遷移を検知してクライアントに
通知する(表示を切り替える)処理を行いたいのですが
どうもうまく行きません。
以下のロジックを実行すると
xxx.htmのファイルの中身(html)がそのままテキストで出力されて
しまい、<html>以下のタグが全く認識されません。
どなたか対処法を教えていただけませんか?
$| = 1;
$boundary = "----- END -----";
print "HTTP/1.0 200 OK\n";
print "Content-type: multipart/x-mixed-replace;";
print "boundary=$boundary\n";
print "\n";
print "$boundary\n";
print "\n";
$site = "0";
while (1) {
unless (print "") {
last;
}
open(IN, "current.dat");
while(<IN>)
{
$current = $_;
}
close(IN);
if ($site ne $current) {
print "$boundary\n";
print "\n";
if ($current eq "1") {
open(FILEA, "menu_1.htm");
while(<FILEA>) {
print;
}
close(FILEA);
} elsif ($current eq "2") {
open(FILEB, "menu_2.htm");
while(<FILEB>) {
print;
}
close(FILEB);
} else {
open(FILEC, "menu_3.htm");
while(<FILEC>) {
print;
}
close(FILE3);
}
print "$boundary\n";
print "\n";
$site = $current;
}
sleep(5);
}
気まぐれ
2000/02/18(金) 01:14:50
>xxx.htmのファイルの中身(html)がそのままテキストで出力されて
>しまい、<html>以下のタグが全く認識されません。
多分そうだと思う(^^ゞ
だって、各ループの中に出力したものに mimeタイプ指定が無いもの・・・
IEでわざと表示させて、どういう順番でどの様なデータを出力してるかを
サンプルと比べてみましょう。
アーサー
2000/02/21(月) 16:43:42
たびたびすいません。
上記ソースのif〜elsif〜elseの直前に
print "Content-type: text/html\n";
print "\n";
を挿入してみたのですが、これもそのまま
文字列で出力されてしまうんですが
対応が間違えているのですか?
気まぐれ
2000/02/21(月) 23:47:09
ブラウザは何ですか?
サーバープッシュはネットスケープしか有効でないのは知ってますよね。
ここの(とほほの)サンプルを参考にしているようですが。
そのサンプルでは、ちゃんと動きますか?
アーサー
2000/02/22(火) 16:06:06
[[解決]]
もう一度とほほさんのサンプルをよく見直したら
できました。本当にすいません。
原因は...。
1. ヘッダ部の改行が\n → \r\nに変更
2. print "$boundary\n";
print "\n";
の後ろの改行は不要。
という事でした。
ありがとうございました!
[上に]
[前に]
[次に]