PHPackages                             elgentos/magento2-clientside-cache - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. elgentos/magento2-clientside-cache

ActiveMagento2-module[Caching](/categories/caching)

elgentos/magento2-clientside-cache
==================================

Elgentos Clientside Cache

1.2.0(2y ago)1017.5k↓35.1%3[1 issues](https://github.com/elgentos/magento2-clientside-cache/issues)GPL-3.0-or-laterHTML

Since Oct 1Pushed 2y ago1 watchersCompare

[ Source](https://github.com/elgentos/magento2-clientside-cache)[ Packagist](https://packagist.org/packages/elgentos/magento2-clientside-cache)[ RSS](/packages/elgentos-magento2-clientside-cache/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (4)Used By (0)

Magento 2 Clientside Cache
==========================

[](#magento-2-clientside-cache)

Magento already had support for ESI blocks, this will add an easy way to replace page heavy or slow blocks and load them asynchronous without much hassle.

Installation
------------

[](#installation)

```
composer require elgentos/magento2-clientside-cache
bin/magento setup:upgrade
```

Usage
-----

[](#usage)

The easiest way is to add the ``around the original block, and use the correct alias `as=""` so the original block knows how which `getChildHtml` to fetch.

`layout/LAYOUT_HANDLE.xml`

```

```

### Limit handles

[](#limit-handles)

You can limit the handles within the Async wrapper. This increases the possibility to re-use requests. An example would be menu's which are the same on every page.

`layout/default.xml`

```

                default

```

Features
--------

[](#features)

- Fetch content async
- Group similar requests for handles into on one single request
- Evaluate Javascript

Javascript
----------

[](#javascript)

If you want to make sure that your global functions or objects are available you need to make sure to assign them to global scope. Some examples;

```

const someFunction = () => {};
// add
window.someFunction = someFunction;

// and for functions
function helloWorld() {}
// add
window.helloWorld = helloWorld;

```

Custom integration
------------------

[](#custom-integration)

It's also possible to do custom integration too.

Use `clientsideCacheAsync` which will return a Promise and will with a object for all blocks you requested.

```
clientsideCacheAsync(['block_name', 'other_block'], ['default', 'catalog_category_view']).then(results => console.log(results))
// {block_name: "", "other_block": ""}
clientsideCacheAsync(['another_block'], ['default', 'catalog_category_view']).then(results => console.log(results))
// {another_block: ""}
```

Special thanks
--------------

[](#special-thanks)

The module was created during the Hackthon before the [Mage Unconference in Cologne](https://www.mageunconference.org/). Thanks to the team for organising another great event and for the Hackathon.

Author
------

[](#author)

- [Jeroen Boersma](https://github.com/JeroenBoersma)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

3

Last Release

959d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/88a6d8dc588e8f2a0948335563a754687f71304f0bd3b7f7049d4bcdc00a563c?d=identicon)[peterjaap](/maintainers/peterjaap)

---

Top Contributors

[![JeroenBoersma](https://avatars.githubusercontent.com/u/1163348?v=4)](https://github.com/JeroenBoersma "JeroenBoersma (10 commits)")

### Embed Badge

![Health badge](/badges/elgentos-magento2-clientside-cache/health.svg)

```
[![Health](https://phpackages.com/badges/elgentos-magento2-clientside-cache/health.svg)](https://phpackages.com/packages/elgentos-magento2-clientside-cache)
```

###  Alternatives

[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.2M1](/packages/fastly-magento2)[lizardmedia/module-varnish-warmer

Varnish Cache Warmer Magento2 module by Lizard Media

6276.8k](/packages/lizardmedia-module-varnish-warmer)[litespeed/module-litemage

LiteMage Full Page Cache for LiteSpeed Web Server

3254.8k](/packages/litespeed-module-litemage)[elgentos/magento2-varnish-extended

This extension extends the built-in Varnish functionalities

6510.9k](/packages/elgentos-magento2-varnish-extended)[vendic/module-optimize-cache-size

Magento 2 extension that reduces the number of cache keys by removing catalog\_product\_view\_id\_, catalog\_product\_view\_sku\_, catalog\_product\_view\_attribute\_set\_, catalog\_category\_view\_id\_ layout handles by default

3453.6k](/packages/vendic-module-optimize-cache-size)[redchamps/module-easy-cache-clean

Clean invalidated cache(s) easily in a Magento 2 store

2838.0k](/packages/redchamps-module-easy-cache-clean)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
