[英]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.