Mise à jouraméliorer les performances du modèle jQuery
Apparemment, les modèles jQuery peut être compilé et il aide à la performance pour les modèles avec si les déclarations montré here.
Mais comme indiqué here, les modèles jQuery précompilés ne font pas beaucoup pour mon cas puisque mon modèle ne contient pas de bloc logique. Pour ceux qui suggèrent l'utilisation d'un autre moteur de gabarit, idéalement, je voudrais utiliser uniquement des gabarits jQuery car tout le monde dans l'équipe ne connaît que jQuery. Il y a aussi un cas de test this qui compare un moteur de template.
Salut,
Encore aujourd'hui, on m'a dit qu'il ya des problèmes de performance avec l'aide de modèles jQuery. Pour comparer, j'ai utilisé les modèles jQuery et la bonne vieille méthode d'ajout de chaîne pour ajouter des lignes à une table. Les résultats peuvent être vus here. L'utilisation de modèles jQuery est environ 65% plus lente que la méthode d'ajout de chaîne, Ouch!
Je me demande ce que l'on peut faire pour améliorer les performances du script de template jQuery.
Le script complet peut être visualisé dans le lien fourni. Mais l'idée de base est la suivante:
Modèle:
<script type="x-jquery-tmpl" id="tmplRow">
<tr>
<td><input type="checkbox" value="${id}" /></td>
<td>${firstName} ${lastName}</td>
<td class="edit">
<a>Edit</a>
<input style="display:none;" type="hidden" value="Blah" />
<input class="cancel" type="button" value="cancel" />
</td>
<td class="select">
<a>Select</a>
<select style="display:none;">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<input class="cancel" type="button" value="cancel" />
</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
<td>More string</td>
</tr>
</script>
données:
<script type="text/javascript">
var data = [];
for (var i = 0; i < 100; i++) {
var row = {
id: i,
firstName: 'john',
lastName: 'doe'
};
data.push(row);
}
</script>
HTML:
<table id="table"></table>
Exécute:
<script type="text/javascript">
$('#tmplRow').tmpl(data).appendTo('#table');
</script>
Merci,
Chi
Je ne me dérange pas de vérifier guidon. Mais leur téléchargement ne fonctionne pas. Si je référence juste "handlebars.js" de la source, il échouera avec la méthode non définie "required". Avez-vous une copie du fichier js assis autour? –
Les modèles jquery «compilent» également les modèles ... – user406905
Apparemment, les modèles de «compilation» n'aident que s'il y a des blocs de contrôle logiques. Veuillez vérifier la question mise à jour pour plus de détails. –