<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>ANGULARarchitects</provider_name><provider_url>https://www.angulararchitects.io/en/</provider_url><author_name>Alexander Thalhammer</author_name><author_url>https://www.angulararchitects.io/en/blog/author/alexander-thalhammer/</author_url><title>How to lazy load large 3rd-party dependencies with Angular 17's @defer - ANGULARarchitects</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="uVkZab9Uta"&gt;&lt;a href="https://www.angulararchitects.io/en/blog/defer-large-deps/"&gt;How to lazy load large 3rd-party dependencies with Angular 17&#x2019;s @defer&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://www.angulararchitects.io/en/blog/defer-large-deps/embed/#?secret=uVkZab9Uta" width="600" height="338" title="&#x201C;How to lazy load large 3rd-party dependencies with Angular 17&#x2019;s @defer&#x201D; &#x2014; ANGULARarchitects" data-secret="uVkZab9Uta" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://www.angulararchitects.io/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://www.angulararchitects.io/wp-content/uploads/2024/01/main-build.png</thumbnail_url><thumbnail_width>600</thumbnail_width><thumbnail_height>394</thumbnail_height><description>Besides some minor updates concerning SSR, the most significant upgrade for us performance enthusiasts in Angular 17 is undoubtedly the new block template syntax, including the defer block feature. In our recent performance blog post on improving initial load performance with Angular 17's deferrable views, we introduced the new code&gt;@defer</description></oembed>
