Simon Willison’s Weblog


40 items tagged “dojo”


React is the new Dojo. In which Mikeal Rogers provides his perspective on the history of Dojo, the earliest break-out JavaScript framework, how jQuery eclipsed it and contemplates the same thing eventually happening to React.

# 20th October 2017, 12:22 am / dojo, jquery, react


Why do so few companies use the Dojo Toolkit?

Dojo is fantastic software, but it does a lot more than the other libraries and consequently has a much higher learning curve. It’s advanced features may serve as something of a disadvantage for achieving more widespread adoption—most developers don’t need the more advanced abstractions provided by Dojo when they start their projects, and by the time they DO need that stuff they’ve already written a ton of code using another library!

[... 88 words]

node-v0.1.30 (via) A very significant new release of Node.js: the Twisted/Dojo-style Promise abstraction has been removed entirely, causing backwards incompatible changes to a bunch of core APIs. This means the pseudo-blocking Promise.wait() method is gone too, making it even harder to accidentally block your event loop. Instead, user-level libraries are encouraged to add Promise-style abstractions. I’m pleased to see Node sticking to the low-level stuff.

# 22nd February 2010, 7 pm / node, nodejs, javascript, promise, twisted, dojo, async

Dojo 1.4.1 vs jQuery 1.4.2pre on Taskspeed. John Resig’s reponse. When JavaScript libraries compete on performance, everybody wins.

# 29th January 2010, 2:19 pm / john-resig, javascript, jquery, dojo, performance, benchmarks

Dojo: Still Twice As Fast When It Matters Most. Alex Russell shows how Dojo out-performs jQuery on the TaskSpeed benchmark, which attempts to represent common tasks in real-world applications and has had code that have been optimised by the development teams behind each of the libraries.

# 28th January 2010, 10:40 pm / taskspeed, benchmarking, performance, alex-russell, dojo, jquery, javascript


It’s interesting to me how much [Closure] feels like a more advanced version of Dojo in many ways. There's a familiar package system, the widgets are significantly more mature, and Julie and Ojan's Editor component rocks. The APIs will feel familiar (if verbose) to Dojo users, the class hierarchies seem natural, and Closure even uses Acme, the Dojo CSS selector engine.

Alex Russell

# 6th November 2009, 7:35 am / acme, alex-russell, closure, css, dojo, google, javascript

Coupling asynchronous scripts. More from Steve Souders, this time discussing methods to cause externally loaded scripts to execute in the correct order, obeying dependencies. Surprisingly there’s no mention of YUI loader or the Dojo packaging system.

# 30th April 2009, 7:57 pm / steve-souders, dojo, yui, javascript, loading

Dojo 1.3 now available. Looks like an excellent release. dojo.create is particularly nice—I’d be interested to know why something similar has never shipped with jQuery (presumably there’s a reason) as it feels a lot more elegant than gluing together an HTML-style string. Also interesting: you can swap between Dojo’s Acme selector engine and John Resig’s sizzle.

# 1st April 2009, 12:19 am / dojo, jquery, javascript, dojocreate, releases, acme, sizzle, selectors


Secure mashups with (via) is brilliant and terrifying at the same time. It provides a full featured API for running untrusted JavaScript in a sandbox, by parsing and validating that code against a variant of Douglas Crockford’s ADsafe JavaScript subset. It could be fantastically useful, but it’s difficult to judge how secure this approach really is.

# 24th September 2008, 4:08 pm / dojox, dojo, javascript, security, sandboxing, adsafe, kriszyp, dojoxsecure, mashups

Making queries faster isn't in the critical path for improving the real-world performance of any Dojo apps I know of, and I bet the same is true for JQuery users. Reducing the size of the libraries, on the other hand, is still important. Now that we're all fast enough, it's time that we stopped beating on this particular drum lest we lose the plot and the JavaScript community continue to subject itself to endless rounds of benchmarketing.

Alex Russell

# 22nd August 2008, 8:12 am / alex-russell, benchmarketing, dojo, javascript, jquery

Dojango version 0.3 released. A reusable Django application that provides Dojo, helper functions ( integration) and tools for switching between Dojo versions.

# 24th July 2008, 12:47 am / dojango, dojo, django, python, javascript Transport. The cleverest use of the messaging hack I’ve seen yet: Dojo now has for safe, performant cross-domain messaging.

# 23rd July 2008, 4:25 pm / crossdomain, windowname, dojo, javascript

Google AJAX Libraries API (via) Google are hosting copies of jQuery, Prototype, mooTools and Dojo on their CDN, with a promise to permanently host different versions and an optional JavaScript API to dynamically load the most recent version of a library. I wish they’d stop capitalising Ajax though.

# 27th May 2008, 5:56 pm / ajax, google, libraries, cdn, jquery, prototype, mootools, dojo

AOP aspect of JavaScript with Dojo. Fantastic post—concisely explains Aspect Oriented Programming, then shows how Dojo’s dojox.lang.aspect brings AOP to JavaScript, including some really useful built-in aspects for logging, profiling and more. Aspects are like Python decorators on steroids.

# 18th May 2008, 10:45 am / aspects, aop, javascript, decorators, python, dojo, dojox, eugenelazutkin

Doctype: /trunk/goog. Google’s newly released JavaScript library (pure JavaScript, so more along the lines of YUI and jQuery than GWT). I haven’t found the documentation for it yet, but the code is extremely well commented. UPDATE: The documentation is spread throughout Doctype.

# 14th May 2008, 9:12 pm / jquery, goog, google, googledoctype, gwt, javascript, dojo, libraries, yui

Embedding custom non-visible data in HTML 5. “Every HTML element may have any number of attributes starting with the string ’data-’ specified, with any value.”—this will be incredibly useful for unobtrusive JavaScript where there’s no sensible place to store configuration data as HTML content. It will also mean Dojo has an approved method for adding custom attributes to declaratively instantiate Dojo widgets.

# 19th April 2008, 10:58 pm / html5, javascript, standards, unobtrusivejavascript, html, dojo, customattributes

Firebug + Dijit tips. News to me: Firebug has a magic $1 variable which corresponds to the currently selected node. Very handy.

# 17th March 2008, 2:08 am / firebug, javascript, debugging, dojo, dijit

dojox.gfx demos. Impressive demos of the Dojo 2D drawing APIs—these need to be linked from the dojo site, it took me quite a while to find them.

# 16th March 2008, 4:24 pm / dojo, dojox, gfx, javascript, drawing, 2d


Insert Dojo and YUI bookmarklets. Combine with Jash for interactive API experimentation on any web page.

# 9th December 2007, 12:38 pm / shell, jash, dojo, yui, javascript, bookmarklets, gareth-rushgrove

Eye-Fi launches. Really neat idea: a digital camera SD card with built-in WiFi to beam your photos straight to your laptop. SitePen built the UI, which runs in your browser on top of Dojo and talks to a small web server running locally.

# 11th November 2007, 10:40 pm / eyefi, digitalcameras, photography, wifi, sitepen, javascript, dojo

dojo.NodeList API docs. Support in Dojo for jQuery-style chaining operations.

# 8th November 2007, 11:16 am / javascript, libraries, dojo, jquery, chaining

Announcing Dojo 1.0. The tough learning curve that accompanied 0.4 and earlier has been replaced with an elegant core module (dojo) and two exciting subprojects (dojox and dijit). Well worth a look.

# 7th November 2007, 1:17 pm / dojo, javascript, dojox, dijit

YUI 2.3.0. New components are a rich text editor, dojo-style package loader, lazy ImageLoader, colour picker and unit test framework. Easier skinning as well.

# 1st August 2007, 8:20 am / skinning, javascript, yui, dojo, testing

Dojo Offline on Google Gears. “The great news is that the Dojo crew were in the loop wrt this project, and Brad has ported Dojo Offline to use Google Gears as the base platform.”

# 31st May 2007, 8:28 am / brad-neuberg, dojo, google-gears, dojooffline, offline, javascript, google

dojo.query: A CSS Query Engine For Dojo. I incorrectly criticised Dojo for not having a CSS node selection tool in my talk yesterday; not sure how I missed this.

# 17th May 2007, 9:40 am / dojo, javascript, javascript-libraries, css, corrections

Dojo 0.9 Update. Big changes are under way in the Dojo camp.

# 29th April 2007, 8:18 pm / dojo, javascript, libraries, alex-russell

The Dojo Offline Toolkit (via) A small client runtime provides a proxy server which offline applications can use to store data; a client library provides code for online/offline detection and data synchronisation.

# 23rd April 2007, 11:56 am / dojo, dojooffline, offline, brad-neuberg

The website to web application gradient. Jeremy snapped this cunning illustration at my JavaScript Libraries panel at the Web 2.0 Expo.

# 20th April 2007, 12:30 am / web2expo, web2expo07, jeremy-keith, dojo, yui, gwt, jquery, john-resig, alex-russell, brettaylor, matt-sweeney, javascript, flickr

Offline Gmail and Blogger Using the Dojo Offline Toolkit. These are just mockups at the moment, but they’re a useful illustration of how offline browsing modes for Web applications could work.

# 10th January 2007, 12:40 pm / sitepen, dojo, offline, javascript, gmail, blogger

The Dojo Offline Toolkit. The Dojo Offline Toolkit will be a small, cross-platform, generic download that enables web applications to work offline.

# 7th January 2007, 10:24 pm / dojo, offline, javascript