1.0.0 • Published 5 years ago

another-string-builder v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Node String Builder

##Why use a string builder?

  • A string builder greatly reduces execution time and system resources.
  • Vastly improves memory management
  • Can shave minutes off of large concatenation / HTML build loops
  • More commonly seen in Java and C#, so why not Javascript?
  • Don't take my word for it. Google 'Why use a string builder' to find out more

##When to use a string builder When you are looping through large amounts of data or creating a number of elements over an iterative process; it is there that typically you'll find the most accepted use. Using a string builder for everything would not make sense as concatenation will do just fine. But anywhere you're dynamically creating a large set of elements, its a very good idea. Don't believe those who say it's negligible, run a test and see the performance improvements yourself.

Performance Metrics - coming soon...

  • Benchmark test in node
  • Graph the result over # of strings to resource improvement at scale

Code Examples

Basic syntax:

//pretend fetch from DB result:
var DBresult = {
  state: 'Texas',
  food: 'toast',
  adj: 'good'
}

//string builder syntax
let sb = new StringBuilder("<ul>", "</ul>");

for(i=0; i < 10000;i++){
   sb.append("<li>")
   sb.append(DBresult.state);
   sb.append(DBresult.food);
   sb.append("is");
   sb.append(DBresult.adj);
   sb.append("</li>");
}

document.getElementById('myList').insertAdjacentHTML('beforeend',sb.toString(' ',true)); //Lightning Flash!
let ss = new StringBuilder("<p>", "</p>");
sb.append("toast");
sb.append("is");
sb.append("good.");
sb.prepend("Texas");

---
{
console.log(sb.length); // 25 
console.log(sb.toString(' ')); //"<p>Texas toast is good.</p>"
console.log(sb.length); // 27 (includes join character insertions from toString's 1st parameter)
console.log(sb.toString('-')); //"<p>Texas-toast-is-good.</p>"
console.log(sb.toString(true)); //"<p>Texastoastisgood.</p>"
console.log(sb.toString()); //empty ""
}

// OR //

{
//clear and keep prefix
console.log(sb.toString('',true,true)); //"<p>Texastoastisgood.</p>"
console.log(sb.toString()); // "<p></p>"
}