<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[Untitled Publication]]></description><link>https://tech.janvladimirmostert.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 09:31:07 GMT</lastBuildDate><atom:link href="https://tech.janvladimirmostert.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Exploring new ways of building ultra-performant WEB applications]]></title><description><![CDATA[A new generation of JavaScript frameworks / libraries are using ES6 template literals to achieve very performant DOM update cycles. One such library is  uhtml 
The interesting part that I want to highlight is the html function:
html`<h1>Hello ${first...]]></description><link>https://tech.janvladimirmostert.com/exploring-new-ways-of-building-ultra-performant-web-applications</link><guid isPermaLink="true">https://tech.janvladimirmostert.com/exploring-new-ways-of-building-ultra-performant-web-applications</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[ecmascript6]]></category><dc:creator><![CDATA[Jan Vladimir Mostert]]></dc:creator><pubDate>Sat, 21 Aug 2021 11:31:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1629545360094/W_CDIKNMt.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A new generation of JavaScript frameworks / libraries are using ES6 template literals to achieve very performant DOM update cycles. One such library is  <a target="_blank" href="https://github.com/WebReflection/uhtml">uhtml</a> </p>
<p>The interesting part that I want to highlight is the <code>html</code> function:</p>
<pre><code>html`<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>Hello </span><span class="hljs-subst">${firstName}</span><span class="xml"> </span><span class="hljs-subst">${lastName}</span><span class="xml">, how are you?<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>`</span>
</code></pre><p>If you open your browser console and define an html function,</p>
<pre><code><span class="hljs-keyword">let</span> html = <span class="hljs-function">(<span class="hljs-params">parts, ...values</span>) =&gt;</span> {
  <span class="hljs-built_in">console</span>.log(parts);
  <span class="hljs-built_in">console</span>.log(values);
}

<span class="hljs-keyword">let</span> firstName = <span class="hljs-string">"Peter"</span>
<span class="hljs-keyword">let</span> lastName = <span class="hljs-string">"Pan"</span>
</code></pre><p>and then run the above example, you'll notice that the string template is split into static <code>parts</code> and the <code>values</code> part which contains all the dynamic data</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1629543535334/T4beWhMPp.png" alt="Screenshot_20210821_125829.png" /></p>
<p>When you render these parts and values into the DOM, you can render the static parts once with placeholders inbetween and then when the values change again, you can surgically update the values in the DOM without re-rendering everything.</p>
<p>No virtual DOM (which only adds overhead), no complex frameworks, just pure  <a target="_blank" href="https://krausest.github.io/js-framework-benchmark/current.html">performance</a>  and productivity. Maybe the render mechanism is a topic for a future post.</p>
]]></content:encoded></item></channel></rss>