我正在尝试通过Perl CGI脚本生成相当大的HTML页面来解决问题。
只要生成的网页大小不超过1 MB,我的CGI脚本就会起作用。
但是一旦网页大小超过1 MB,页面将在我的浏览器中显示一次正确,但重新加载后页面将被切断为1 MB。 效果将保持一段时间(> 5分钟?)然后消失一次重新加载。
我认为我发现了一些可能的问题来源:
STDOUT
我已经尝试过:
$|=1;
有没有人知道问题所在?
这是一个测试脚本,我可以使用它来重现效果:
#!/Programme/perl/perl/bin/perl
$| = 1;
use strict;
use CGI qw/:standard -nosticky -debug/; # CGI scripting
use CGI::Carp qw(fatalsToBrowser); # show error messages in browser
use CGI::Session qw(-ip_match);
my $cgi;
my $top = 30;
my $i;
$cgi = new CGI;
print <<EOF;
Expires: -1
Cache-control: no-store
Pragma: no-cache
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">
<html>
<head>
<title>Testpage</title>
<meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1">
<META HTTP-EQUIV="expires" CONTENT="-1">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</head>
<body bgcolor="#efefef" text="#000000" marginwidth="0" marginheight="0">
EOF
for ($i=0;$i<10000;$i++){
# any popup_menu
print $cgi->popup_menu(-name => "monthSel$i",
-values => [1,2,3,4,5,6,7,8,9,10,11,12],
-default => 1,
-override => 1,
-style => 'position:absolute; top: '. $top . 'px; left:50px'
);
$top += 30;
}
# close body
print "</body>";
答案 0 :(得分:0)
好吧,我想我已经解决了这个问题,虽然我没有找到这个问题的根本原因。
步骤:
结论:似乎是系统的内部问题
在此处找到了通过网络堆栈强制本地数据包的方法:Sniffer for localhost (Windows OS)(使用http://localhost./
代替http://localhost/
)