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
 &nbsp;
#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]

Reply via email to