快捷的服务:高效率CGI网页生成

ZDNet软件频道 时间:2002-10-08 作者:BUILDER.COM |  我要评论()
本文关键词:
对于网络开发人员,动态网页的高效传输依然面临着挑战,尤其是把静态HTML网页移植到CGI。这一篇文章我将对比在网页传输中进行的三种CGI策略,从中了解他们的性能特性。
对于网络开发人员,动态网页的高效传输依然面临着挑战,尤其是把静态HTML网页移植到CGI。这一篇文章我将对比在网页传输中进行的三种CGI策略,从中了解他们的性能特性。
候选CGI技术

我的测试阐明了网页生成性能的三种通用Perl技术。

  • HERE documents (HERE 文档)
  • emplatization (模板化)
  • CGI.pm module (CGI.pm 模块)

下面整体看一下各个技术的详细内容

HERE文档

HERE文档被称标题等级构造器中的Perl数据网页。它们能够允许纯文本被嵌入到一个文件中。因为HTML是纯文本,HERE文档就可以提供一个直接的解决方法。它们也支持不同的赋值方式,这就意味着纯文本能包含Perl变量。下面是一个例子:

#!/usr/bin/perl –w
my $color = "red;
print<<HERE;
This car is $color.

这一代码结果将打印出,“This car is red”。HERE 文档的不足之处是它的代码读起来很晦涩。在Perl代码中的大型的HERE文档将会打乱常规的程序流程图。

模板化

一种较为清晰的方法是把源HTML模板化。HTML存放在一个独立的文件中,通常是以XML标签的形式出现。HTML文件能被CGI程序读入,当检测到这些XML标签,XML标签将被动态内容取代。这就是HTML::Template模块方法,以下的代码片断说明了HTML的模板化:

<HTML><BODY>
This car is <TMPL_VAR NAME="COLOR">.
</BODY></HTML>


这里的Perl代码能处理之:

And here's the Perl code to process it:
#!/usr/bin/perl –w
use HTML::Template;
my $template = HTML::Template->new(filename=>"temp.html");
template->param(COLOR=> "red");
print template->output;


COLOR模板变量值"red",取代了<TMPL_VAR>标签。模板化提供了比HERE文档更清晰的方法,因为前者的代码存放在一个文件,而数据放在加一处。许多服务器方面的技术,从SSI到ASP,都使用了模板方式。

CGI.pm

这一模块把HTML标签当成代码,每一个HTML标签都对应有一个Perl子程序。你可以不采用常规的Perl语法来定义HTML。CGI.pm与HERE文档相反。下面的例子正好说明了使用CGI.pm的方法:

#!/usr/bin/perl –w
use CGI ":standard";
my $q = new CGI;
print $q->start_html, "This car is red", $q->end_html;

当然,这三个内容不仅仅这些,我们只是谈及它的测试领域。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134