GetDirtyCount() non deterministic after load
Added also load options in order to clear the editor internal state post load
Read full answer below ↓Question
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Reproducible demo link https://github.com/padcom/grapesjs-bug-dirty-count-non-deterministic/blob/master/index.html Describe the bug Currently, when the user calls await load() the dirty count is zero. Only after the next event loop or later the count is increased. Therefore: prints out 0 but after a milisecond: the number of changes is 1. Expected behavior is that after awaiting the call to load(), if indeed as described in #5373 the editor is changed it should be so immediately after the c...
Answers (4)
Added also load options in order to clear the editor internal state post load
const storageOptions = {};
const loadOptions = { clear: true };
await editor.load(storageOptions, loadOptions);
editor.getDirtyCount(); // should always be 0 post load
Thank you! Looking forward to the next release!
Already available here https://github.com/GrapesJS/grapesjs/releases/tag/v0.21.6
You've accurately identified a common timing issue with GrapesJS's getDirtyCount() method after calling editor.load(). This behavior is indeed due to the asynchronous nature of how GrapesJS processes internal state updates and event emissions. Root Cause Explanation When editor.load() is called, it...
Related Questions and Answers
Continue research with similar issue discussions.
Issue #5373
`getDirtyCount()` returns `1` after loading
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome latest Reproducible demo link https...
Issue #5144
Incorrect type definition for PanelManager.addPanel
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? All Reproducible demo link None Describe t...
Issue #4384
Index.d.ts says that components must be Backbone.Collection<Component> but the docs say Component[] is also accepted
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? AnyReproducible demo link https://grapesjs.c...
Issue #6606
Editor takes a long time to load (sometimes over 1 minute)
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Firefox Reproducible demo link https://gra...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.
Browse free plugins →Premium plugins ship with support, regular updates, and production-ready features — save days of integration work.
Browse premium plugins →Related tutorials
In-depth guides on the same topic.
Tutorial
Introducing Search on GJS.Market
GJS.Market now has one search across everything we publish — plugins, articles, community questions, guides, authors and services. Press ⌘K from any page.
Tutorial
How Much Does It Cost to Build a SaaS Page Builder in 2026?
How much does it cost to build a SaaS page builder in 2026? Explore realistic development costs, timelines, features, and how using GrapesJS can reduce
Tutorial
PageKit: the GrapesJS application you'd have to build anyway
A source-available Next.js app around the open-source GrapesJS core — publishing, custom domains, leads, checkout and a plugin loader.
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.