Beginning with 2026 Release 1.2, Xojo Web has enabled a new feature called LazyLoadDependencies by default. If you use the stock framework and no third-party web components, this is a great addition.
But What Does It Do?
Well, it loads framework libraries on demand rather than at the start of each session, so if a library isn’t used by your project then it doesn’t get loaded. A prime example of this is the jQuery and jQuery UI libraries, which Ricardo has worked diligently to remove as dependencies of the framework itself.
What Is jQuery?
jQuery started life in a time when JavaScript didn’t have the featureset that it does today, so DOM manipulation was more cumbersome, and it sought to make that easier. And it worked! jQuery made building complex user experiences on the web far easier and spurred a number of innovations and additions to the JavaScript specifications now included in all major browsers. Today? jQuery is considered vestigial. It’s no longer necessary and could be replaced with stock browser functionality.
jQuery UI, similarly, was created to provide UI elements with JavaScript code incorporated for manipulation long before Bootstrap swept the internet. It was themeable, provided a consistent API, easily incorporated into third-party libraries and applications, and made building web applications really easy.
So What’s the Problem?
The problem with all of this is that there’s still a huge amount of code that’s been built on top of jQuery. Tons of open and closed source solutions developed over the last 20 years that still function perfectly well, which can at times be painful to migrate.
GraffitiSuite Web is now more than 16 years old. Some of those products stretch back to even before the release of Xojo Web 1.0, and all have been maintained and updated through the years to be both better performant and more visually appealing. They continue to function just as well today as they did when we first published GraffitiSuite Web 1.0, and a fair number of them were built on top of jQuery.
This is all fine, normally, except that Web 2.0 added jQuery and other common libraries as dependencies of the framework (when they hadn’t been in Web 1.0) which required a reworking of GraffitiSuite to rely on Xojo serving these libraries and playing nice with whatever versions they decided to use — and/or update to — with each release. Prior to that, libraries relying on these dependencies had been modified so that different libraries used by GraffitiSuite could have their own instance of the jQuery library working in noConflict mode if necessary, which was no small task for some of the products, and making them all use the same version of jQuery with Web 2.0 was just as painful.
Now, with the LazyLoadDependencies feature being enabled by default, these former framework requirements may not be loaded at all when your sessions spin up, and that can lead to JavaScript exceptions eminating from GraffitiSuite or even code you’ve copied from the Xojo forums.
Is jQuery the Only Library At Issue?
Unfortunately not. As Web 2.0 expanded its featureset, additional libraries that were used by GraffitiSuite began to be framework requirements, such as the popular Moment.js library which we have used in JavaScript since, practically, the beginning. While Xojo doesn’t appear to be working to remove it as a dependency, making it’s existence in the browser optional adds another hiccup, but not one we haven’t dealt with.
Additionally, modernizr was used extensively in Web 2.0 for feature detection and it’s now been removed entirely as a framework requirement and will likely no longer be served from your Xojo Web applications.
What’s the Solution?
As of Release 70 GraffitiSuite now loads versions of jQuery, jQuery UI, and Moment.js when needed, and contains code that no longer relies on modernizr.
The recommended path forward is to update to GraffitiSuite Web Release 70 if you wish to use Xojo Release 2026 1.2 or later, especially considering there may be other changes within the products to ensure their operation in new versions of Xojo. Alternatively, you can disable LazyLoadDependencies by selecting the Session object in your project and toggling it off in the inspector, though it’s unclear if or when this ability will be removed from the IDE.
How Can I Tell If I’m Relying On jQuery?
jQuery is easy to detect in your own projects if you start getting JavaScript exceptions. Search your project for $( and $. if either are found then there’s a good chance that you’re relying on code that may fail in Xojo 2026r1.2 and newer.
Discover more from GraffitiSuite
Subscribe to get the latest posts sent to your email.

