StringTemplate (v2)

Revision 2 of this benchmark created by Morgan Cheng on


Preparation HTML

<script>
  function sub(str, data) {
  
   return str.replace(/\{([^\}]+?)\}/g, function(match, key) {
  
    return (key in data) ? (typeof data[key] === 'function' ? data[key](key, str) : data[key]) : match;
  
   });
  
  }
  
  
  
  var obj = {
   url: 'http://www.yahoo.com',
   subject: 'The subject, what else',
   content: 'The content, should takes about 100 characters? Not sure, hot this string is representative. OK?',
   date: '2011/04/26',
   time: '3:30PM'
  };
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
substitue regex
var str = sub('<div><a class="title" target="_blank" href="{url}">{subject}</a><div class="desc">{content}</div><span>{date}:{time}</span></div>', obj);
ready
join
var str = ['<div><a class="title" target="_blank" href="', obj.url, '">', obj.subject, '</a><div class="desc">', obj.content, '</div><span>', obj.date, ':', obj.time, '</span></div > '].join('');
ready
concatnate
var str = '<div><a class="title" target="_blank" href="' + obj.
url + '">' + obj.subject + '</a><div class="desc">' + obj.content + '</div><span>' + obj.date + ':' + obj.time + '</span></div>';
ready
smart push
var i = 0;
var arr = [];
arr[i++] = '<div><a class="title" target="_blank" href="';
arr[i++] = obj.url;
arr[i++] = '">';
arr[i++] = obj.subject;
arr[i++] = '</a><div class="desc">';
arr[i++] = obj.content;
arr[i++] = '</div><span>';
arr[i++] = obj.date;
arr[i++] = ':';
arr[i++] = obj.time;
arr[i++] = '</span></div>';

var str = arr.join('');
ready
push join
var i = 0;
var arr = [];
arr.push('<div><a class="title" target="_blank" href="');
arr.push(obj.url);
arr.push('">');
arr.push(obj.subject);
arr.push('</a><div class="desc">');
arr.push(obj.content);
arr.push('</div><span>');
arr.push(obj.date);
arr.push(':');
arr.push(obj.time);
arr.push('</span></div>');

var str = arr.join('');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 2: published by Morgan Cheng on