簡體   English   中英

如何在Perl中退出tmpl循環?

[英]How to exit a tmpl loop in perl?

我在Perl中使用html模板生成一個動態網站,我的Script1.pm生成一個表並將其作為tmpl_loop發送到template.tmpl以在網站上顯示一個表。

到目前為止,該方法運行良好,但是隨着表的行數超過100,000行,整個瀏覽器開始滯后。

我可以設置計數器以在10000次迭代后退出tmpl循環嗎?

僅在腳本中縮小表是行不通的,因為我需要為導出文件完成該表。

如果您使用Template :: Toolkit ,則可以使用特殊的loop變量:

[% FOREACH match IN results %]
    [% LAST IF loop.count > 10000 %]
[% END %]

請注意, BREAK也是LAST的別名。

首先整理數據,然后再將其發送到模板。

例如改變

 $template->param(ROWS => \@rows);

 splice(@rows, 10_000);
 $template->param(ROWS => \@rows);

要么

 my @truncated_rows = @rows[0 .. $#rows < 10_000 ? $#rows : 10_000];
 $template->param(ROWS => \@truncated_rows);

后者是非破壞性的,因此,如果以后在程序中需要整個行集以用於其他目的,則它們仍然可用。 (呈現輸出后繼續處理似乎很麻煩,但是對該問題的更新似乎表明這是必需的。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM