繁体   English   中英

如何使用CGI Perl在页眉之前打印页面加载消息

[英]How to print a page loading message before the header using CGI Perl

我想显示一条消息,显示为“正在加载。请稍候”,然后再加载我的网页的实际内容以及标题。 但是在Apache 2.2.15上,如果不先打印标题,则不会显示任何打印消息。 下面是代码:(Perl版本5.14.1,CGI版本:3.52):

use CGI;

use CGI::Carp qw(fatalsToBrowser);

#print "Content-type:text/html\n\n";
print '<pre>'. " This is before header"  .'</pre>';
print qq[<DIV id="loading" style="position:absolute; font-family:arial; 
font-size:16; left:0px; top:0px; background-color:red; layer-background- 
color:white; height:100%; width:100%;">
<TABLE width=100%><TR><TD><B>Loading... Please wait!</B></TD></TR></TABLE>

</DIV>];



my $q = CGI->new;
print $q->header();

print $q->start_html();

warn "this is test header issue script \n";
print "Hello Everybody .. !";
print $q->end_html();

如果我在顶部打印“ content-type:text / html”,那么我能够显示加载消息,但是这也会在我不想的顶部显示content-type。
有Perl的方法可以实现吗?
这只是我的实际代码的简短示例,因此在打印加载消息后,对代码的控制将不再继续,请忽略该代码。

这不是CGI的工作方式。

标头位于内容之前。

参见RFC3875

6.2。 回应类型

响应包括一个消息标题和一个消息主体,由空行分隔。 邮件标题包含一个或多个标题字段。 主体可以为NULL。

  generic-response = 1*header-field NL [ response-body ] 

您需要什么需要客户端解决方案:第一个响应返回插页式广告。 然后,后续请求将加载完成的页面。 如今,这是使用AJAX调用完成的。 在过去,我们曾经进行整页重新加载。

请参阅Randal Schwartz的“通过CGI监视长过程”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM