ハンドルバー付きのphonegapを使用していますが、テンプレートをプリコンパイルしてもまだ遅いです。
たぶん、テンプレート内にスクリプトを置くことがこれを引き起こしています。
<table class="table table-striped table-hover">
<thead>
<tr>
<th>IMG</th>
</tr>
</thead>
<tbody>
{{#each array}}
<tr>
<td>
<a href= "{{this}}" class="swipebox" title="My Caption">
<img src= "{{this}}" alt="image" width="50" height="50">
</a>
</td>
</tr>
{{/each}}
</tbody>
</table>
<script>
var table = $('table').dataTable({
lengthMenu: [[-1, 50, 25, 10], ["Todo", 50, 25, 10]],
sPaginationType: "full_numbers",
language: {
"url": "json/Spanish.json"
}
});
</scr{{undefined}}ipt>
あなたのHTMLはひどいです。 速度低下の理由は、ビューモデルなしでは対処できません。
これがコンテキストです
<script type="text/javascript">
var array = [];
for (i = 0; i < 3; i++) {
var src = "img/arrow_ + i + .png";
array.push(src);
}
var context = {"array":array}
var theCompiledHtml = Handlebars.templates['events.tmpl'](context);
$('.render').html(theCompiledHtml);
</script>
var theCompiledHtml = Handlebars.templates['events.tmpl'](context);
スクリプトタグの関数が何のためにあるのかわかりません。 画像の配列を反復処理するためのもののようですが、プリコンパイルされたテンプレートを呼び出すために貼り付けたコードはそこに属していません。
理想的には、テンプレート呼び出しを含む単一のアプリファイルがあり、レンダリングされたHTMLを出力する場所をページに指示します。
今のところ、私が見ているものは、レンダリングする前に、プリコンパイルされたテンプレートがブラウザによって完全に評価される結果になると思います。 これにより、プリコンパイルは無意味になります。
非アクティブのために閉じます。