He details his updated dojo.storage work via Moxie, a sample application.

What is dojo.storage?

Dojo.storage is a unified API to provide JavaScript applications with storage. It is a generic front-end to be able to provide all JavaScript applications a consistent API for their storage needs, whether this JavaScript is in a browser, a Firefox plugin, an ActiveX control, using Windows Scripting Host, etc. Further, the storage backends can use whatever mechanism is appropriate; dojo.storage automagically detects its environment and available storage options and selects the most appropriate one.

I highly recommend reading Brad’s post on his blog. What he has achieved is practically a miracle. I know he says dojo.storage is beta, but it seems far more tested than most beta stuff people throw up to get buzz. This is going to save all of us a great deal of time.

It’ so funny, 3 days ago I was bemoaning the fact that dojo news was sparse. Then bam, three big Dojo stories 3 days in a row. Thanks to ajaxian.com for keeping their eye on Dojo. Now if the documentation could just….

It’s a very handy library. How about Storage Providers for online services like S5? (wrt S5 Javascript Bindings post last week.) Seems like they’d fit the abstraction just as easily as the local services.

This is really cool. Ajaxian ran a story about a new capability built into the Dojo framework that provides persistent client-side storage. There’s even a link to a demo app. Although it has some limited use because, frankly, I want

Michael, I’ve been thinking about how to hide remote storage providers behind the StorageProvider API; the one problem is that the get() and getKeys() methods returns their values synchronously, while you would want these to be asychronous; having every method be asychronous, though, is a pain in the butt for normal, local programming. Do you have an idea on how to resolve this?

Brad, Hadn’t thought about it like that. Still, there’s definitely a benefit to a unified interface.

I could only see the obvious solutions:
– Only support synchronous mode.
– Make the API support async as well, or introduce a second AsyncStorageProvider interface. Maybe async mode is also good for some local storage purposes anyway.