There is something definitely wrong with your setup, getTemplate()
should be much faster, even when the template hasn't been compiled
yet. I'm not sure what you mean by "This template is created
automatically by another Velocity client class".
The problem you are experiencing is NOT due to the below velocity
template, but is some issue with your implementation.
Without knowing what you are doing it is hard to judge, but I suggest
you begin with the simplest possible code to load the below template,
and then work backward to find out where the problem lies.
On Dec 29, 2008, at 2:11 , bluejoe wrote:
Hi, all. My template file is shown below, getTemplate() cost more
than 16000ms to load it. I don't know what's wrong with it. This
template is created automatically by another Velocity client class
(I named it as TemplatePublisher), so it is too ugly and long. Who
can tell me how to optimize this template to make the loading time
shorter?
thanks a lot!
============== my poor template ==============
<!--created by VdbPublisher at 2008-12-27 00:14:31-->
#if ($pageViewer.beans.size() == 0)
<center>
<div style="width:100%" align="left"> <br>
<p><font color="#cccccc">no records...</font></p>
</div>
</center>
#else
<table align="center" width="100%" border="1" cellpadding="6"
class="table1 dataset book">
<tr class="header">
<td align="center" fieldId="8a8080841c833108011c8331087c0002"
orderAsc="${jsoQuery.orderAsc}" onclick="setOrderBy(this)"
style="cursor:hand" title="order by number" ><b><img src="/images/
key.gif" align="absbottom"> number</b>#if
('8a8080841c833108011c8331087c0002' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="8a8080841c833108011c8331087c0003" orderAsc="$
{jsoQuery.orderAsc}" onclick="setOrderBy(this)" style="cursor:hand"
title="order by title" ><b> title</b>#if
('8a8080841c833108011c8331087c0003' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="1f62836e1c8dd5da011c8dd909b00001" orderAsc="$
{jsoQuery.orderAsc}" onclick="setOrderBy(this)" style="cursor:hand"
title="order by price" ><b> price</b>#if
('1f62836e1c8dd5da011c8dd909b00001' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="1f62836e1c8dd5da011c8dd925d30003" orderAsc="$
{jsoQuery.orderAsc}" onclick="setOrderBy(this)" style="cursor:hand"
title="order by modification time" ><b> modification time</b>#if
('1f62836e1c8dd5da011c8dd925d30003' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="1f62836e1c8de132011c8e09666d0001" orderAsc="$
{jsoQuery.orderAsc}" onclick="setOrderBy(this)" style="cursor:hand"
title="order by description" ><b> description</b>#if
('1f62836e1c8de132011c8e09666d0001' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="1f62836e1c8de132011c8e0984550003" orderAsc="$
{jsoQuery.orderAsc}" style="color:#888888" title="unsortable" ><b>
images</b>#if ('1f62836e1c8de132011c8e0984550003' ==
$jsoQuery.orderId)<img src="/images/${jsoQuery.orderAsc}.gif"
align="absbottom" width="13">#end</td>
<td align="center"
fieldId="1f62836e1c8de132011c8e09b4000005" orderAsc="$
{jsoQuery.orderAsc}" onclick="setOrderBy(this)" style="cursor:hand"
title="order by publish date" ><b> publish date</b>#if
('1f62836e1c8de132011c8e09b4000005' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="ff8080811db4d587011db4e3fab5000a" orderAsc="$
{jsoQuery.orderAsc}" onclick="setOrderBy(this)" style="cursor:hand"
title="order by isNew" ><b> isNew</b>#if
('ff8080811db4d587011db4e3fab5000a' == $jsoQuery.orderId)<img src="/
images/${jsoQuery.orderAsc}.gif" align="absbottom" width="13">#end</
td>
<td align="center"
fieldId="ff8080811db4d587011db4e811f3000d" orderAsc="$
{jsoQuery.orderAsc}" style="color:#888888" title="unsortable" ><b>
vfield</b>#if ('ff8080811db4d587011db4e811f3000d' ==
$jsoQuery.orderId)<img src="/images/${jsoQuery.orderAsc}.gif"
align="absbottom" width="13">#end</td>
<td align="center"
fieldId="ff8080811db4ec19011db4ec61c50001" orderAsc="$
{jsoQuery.orderAsc}" style="color:#888888" title="unsortable" ><b>
location</b>#if ('ff8080811db4ec19011db4ec61c50001' ==
$jsoQuery.orderId)<img src="/images/${jsoQuery.orderAsc}.gif"
align="absbottom" width="13">#end</td>
<td align="center"
fieldId="ff8080811e5245cc011e524aaa1a0005" orderAsc="$
{jsoQuery.orderAsc}" style="color:#888888" title="unsortable" ><b>
authors</b>#if ('ff8080811e5245cc011e524aaa1a0005' ==
$jsoQuery.orderId)<img src="/images/${jsoQuery.orderAsc}.gif"
align="absbottom" width="13">#end</td>
<td class="header"></td>
</tr>
#foreach ($bean in $pageViewer.beans)
#set ($id = $bean.id.jdbcObject)
#set ($flag = $velocityCount%2)
<tr id="DATAGRID_ROW" class="bg${flag}" checked="false"
originalClass="bg$flag" rowID="${id}" onmouseout="hiliteRecord(this,
false)" style="cursor:hand" onclick="toggleRecord(this);"
title="click here to select this row">
<td>$bean.id.format('%d')</td>
<td>$bean.title.format('%s')
</td>
<td>$bean.price.format('%.2f')</td>
<td>$bean.posttime.dateFormat('')</td>
<td>$bean.desc.format('%s')
</td>
<td>#foreach ($file in $bean.photo.files)
<a href="${file.filePath}">${file.title}[${file.fileSize}]</a><br>
#end</td>
<td>$bean.publishdate.dateFormat('')</td>
<td>$bean.ispop.format('%s')
</td>
<td>$bean.vfield.value</td>
<td>$bean.location.lon, $bean.location.lat</td>
<td><div id="13" class="DataTableView"></div>
<script>
var jsoQuery_13 = new SlaveQuery('cn.csdb.paperdb.author', '$
{bean.id.jdbcObject}', 'cn.csdb.paperdb.book.authors');
jsoQuery_13.pageSize = 20;
var jsoDataTableView_13 = new
DataTableView('cn.csdb.paperdb.author', jsoQuery_13, $
('#13.DataTableView')[0]);
jsoDataTableView_13.refresh();
</script></td>
<td align="center" valign="top" class="bg2"><span id="TITLE_
$velocityCount" style="display:none">$bean.title.format('%s')
</span>
#if($!authenticator)
<a href=# onclick="updateRecord('8a8080841c833108011c8331087c000a',
'${id}');">update</a> <a href=#
onclick="deleteRecord('8a8080841c833108011c8331087c000a', '$
{id}');">delete</a>
#end
</td>
</tr>
#end
</table>
<p> <input type="checkbox" onclick="checkRecords(this);">select all
#if($!authenticator)
<button onclick='deleteRecords();'><img src='/images/submit_n.gif'
border=0 align=absbottom>delete all</button>
#end
</p>
#if ($pageViewer.pageCount > 1)
<br>
<center>
<div style="width:100%">
<div align="right">${pageViewer.footerBar1}</div>
</div>
<div style="width:100%">
<div align="right">${pageViewer.footerBar2}</div>
</div>
</center>
#end
#end
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]