Page 17 - Web Performance
-
Maxim Mironjuk
-
August 06, 2025
Video is usually the single heaviest resource on a Magento product page and can seriously hurt Largest Contentful Paint, bandwidth, and interaction responsiveness. With the right preload attribute, optimized poster images, genuine lazy loading below the fold, and adaptive streaming for longer content, load times stay stable without giving up product videos.
-
Maxim Mironjuk
-
August 06, 2025
With :has(), CSS can for the first time select an element based on its descendants or following siblings, a capability the language waited years for. That power comes at a cost though: :has() forces the browser to search an entire subtree for every candidate instead of checking a single node, which can become noticeable in large DOM trees.
-
Maxim Mironjuk
-
August 03, 2025
JavaScript is single-threaded, but not sequential. The Event Loop determines the execution order of synchronous code, Promises, timers and callbacks. Anyone who does not understand the difference between microtasks and macrotasks ends up writing asynchronous code that runs in a mysteriously wrong order.
-
Maxim Mironjuk
-
August 02, 2025
The JSON roundtrip trick has been the standard for deep cloning in JavaScript for years, and for years it has been losing Date objects, Map, Set, undefined values and circular references. structuredClone() is the native solution that has been available in all modern engines since 2022 and handles all of that correctly.
-
Maxim Mironjuk
-
July 30, 2025
Alpine.js is often seen as a lightweight alternative to Vue or React, yet even Alpine can noticeably slow down a product listing page. This article explains how Alpine's Proxy-based reactivity actually works, how x-for renders large lists smoothly, when x-show beats x-if, and how shared state through Alpine.store makes dozens of separate components unnecessary.
-
Maxim Mironjuk
-
July 21, 2025
Misconfigured Cache-Control headers force browsers to reload the same files on every page view, costing noticeable load time and unnecessary server load. This article explains the key directives, ETag validation, cache busting, and how the browser cache, shared cache, and service worker cache interact, using concrete Magento examples.
-
Maxim Mironjuk
-
July 17, 2025
Most responsive image setups ship images that are too large or too small because srcset, sizes and picture are combined incorrectly or left incomplete. This article explains the actual browser logic behind width and density descriptors, shows the correct sizes calculation, and delivers a practical pattern for Magento product catalogs with art direction and format fallback.
-
Maxim Mironjuk
-
July 14, 2025
The Oxide Compiler is the technical foundation of Tailwind CSS v4. Written in Rust, it fully replaces the previous JavaScript compiler and delivers dramatic build acceleration, with automatic file detection and a built-in CSS parser.
-
Maxim Mironjuk
-
July 13, 2025
Phil Karlton is credited with the line that there are only two hard things in computer science: cache invalidation and naming things. In distributed systems with multiple cache layers, CDN, application cache, and database cache, that problem gets noticeably more complex, because each layer brings its own invalidation logic and its own timing delay. Combining time-based and event-based invalidation with deliberate cache tagging makes the problem manageable, even though it never fully goes away.
-
Maxim Mironjuk
-
July 12, 2025
A form with five fields shows almost no difference between reactive() and a field level ref() strategy in practice. A form with fifty or more fields, as seen in accounting or configuration interfaces, tells a different story: a single large reactive object can trigger noticeably more work on every keystroke than the actual change would require.
-