HTML::FormHandler 在 Catalyst 中很慢,mod_perl



我正在使用 HTML::FormHandler 和我的 mod_perl/Catalyst 应用程序为我的用户生成表单。它工作正常,唯一的问题是它大大减慢了页面加载时间。这是我创建新表单的子例程:

sub edit : Chained('base') PathPart Args(0) {
    my ( $self, $c ) = @_; 
    my $form = myapp::Form::Account::Edit->new;
    #validation stuff, etc
    #...
}

只需添加一行" my $form = myapp::Form::Account::Edit->new; "就会导致我的页面加载时间从 50 毫秒增加到 500-1000 毫秒。我知道有些人可能会争辩说,一个网站的 500-1000 毫秒页面加载时间仍然很好,但我预计这个网站会获得高流量,现在一个页面加载只需要很长时间只有一个用户。我知道 HTML::FormHandler 很大,因为它使用 Moose,但是加载一次后,它不应该已经加载了吗?有什么方法可以加快它正在花费的时间,或者这只是使用HTML::FormHandler的代价?如果可以的话,我真的很想继续使用它,因为它使我作为编码员的生活更容易:)

您还可以在

控制器的 Moose 属性中生成窗体,使窗体持久化。这意味着来自上一个请求的信息仍将在表单对象中,并将在下一个请求的开头被清除(或者可以在呈现表单后由程序员清除)。您还必须清除已添加到表单的任何其他属性,或确保在每次"流程"调用中设置这些属性。

在应用调用模块之前,可以使用mod_perl加载模块。

http://www.conceptsolutionsbc.com/perl-articles-mainmenu-41/29-perl-and-apache/55-modperl-part-2-pre-loading-perl-modules

#put his to apache config file:
PerlModule HTML::FormHandler;

编辑:

为了加快运行速度,

您可以使用记忆来加快速度。

创建一个名为 get_form_handler 的新子并记住其输出。

您甚至可以使用 Cache-FastMmap 一次存储此对象(输出)并在进程之间共享。

问候

相关内容

  • 没有找到相关文章

最新更新