Pete Higgins released Dojo 1.2 the first version under his command. There are a ton of subtle improvements such as:
New Datastores
dojox.data.JsonRestStore
dojox.data.CouchDBRestStore
dojox.data.GoogleFeedStore: A Google AJAX API powered data store for retrieving RSS and Atom feeds from Google.
dojox.data.GoogleSearchStore: Data stores to interface Google’s AJAX search services.
dojox.data.PersevereStore: dojox.data.PersevereStore is an extension of JsonRestStore to Persevere’s special features.
dojox.data.S3Store: an extension of JsonRestStore to handle Amazon’s S3 service using JSON data
New Projects in DojoX
dojox.analytics.Urchin
A Google-analytics helper, which supports lazy-loading the Google Analytics API at any point during a page lifecycle.
Allows you to post-onload include Google Analytics helper, and track Ajax-y pages via a simple API, with a very small overhead.
dojox.av
New project for Audio/Video elements
dojox.av.FLVideo: a player for Flash video files
dojox.av.widget.Player: Dijit-based object for playing Flash media
dojox.embed
A set of utilities that allow you to load/include Objects such as Flash and Quicktime.
dojox.embed.Flash for Flash movies
Create proxy information for Flash movies implementing ExternalInterface through dojox.embed.Flash.proxy
dojox.embed.Quicktime for Quicktime movies
dojox.embed.Object—a Dijit that can be used via markup for any dojox.embed objects available.
dojox.io.windowName
Provides secure cross-domain request capability. Sends a request using
an iframe (POST or GET) and reads the response through the frame’s window.name.
dojox.io.xhrPlugins
This is a registry for creating alternate XHR handlers, for example
you can register to use IE8’s XDomainRequest or a proxy server to handle
cross-domain requests.
dojox.lang.aspect
dojox.lang.aspect is a new AOP library module for before/around/etc advice and other AOP features.
Provides a form of getter/setter support to objects.
Observable objects can be created such that all property
reads, writes, and method calls will trigger listener functions
so that you can create APIs where property interaction can be
controlled and monitored.
This relies on VBScript hacks for IE and is somewhat
limited in functionality.
dojox.secure.capability
This provides object-capability JavaScript validation.
This is a validator to run before eval to ensure that a script can’t access or
modify any objects (like global objects) outside of those specifically
provided to it.
dojox.secure.DOM
Provides a DOM facade that restricts access to a specified subtree
of the DOM.
The DOM facade uses getters/setters and lettables to emulate the DOM API.
dojox.secure.sandbox
Provides support for loading web pages, JSON, and scripts
from other domains using XHR (and XHR plugins) with a safe
subset library and sandboxed access to the DOM.
Synchronized Multimedia Integration Language (or SMIL) 3.0 has now become a proposed recommendation at the W3C. SMIL hasn’t been widely used, but some of it is widely supported thanks to ACID tests that had the browser vendors put it in.
3.0 has the following goals:
Define an XML-based language that allows authors to write interactive
multimedia presentations. Using SMIL, an author may describe the temporal
behaviour of a multimedia presentation, associate hyperlinks with media
objects and describe the layout of the presentation on a screen.
Allow reusing of SMIL syntax and semantics in other XML-based
languages, in particular those who need to represent timing and
synchronization. For example, SMIL components are used for integrating
timing into XHTML [XHTML10] and into SVG [SVG].
Extend the functionalities contained in the SMIL 2.1 [SMIL21] into
new or revised SMIL 3.0 modules.
Define new SMIL 3.0 Profiles incorporating features useful within the
industry.
Matt Raible has posted on the Ajaxified Body pattern, that loads content into the main area instead of reloading an entire page.
The surrounding template stays put, and the red area changes when you have an action:
This is an old question: “When should you just reload the page?” In the sample application you see the trade offs. Every click causes a red “Loading…” indicator, and just the main area changes. The browser doesn’t have any indication that something is happening, hence the need for the custom red indicator. You also then have to implement support for browser history, make sure that direct access works and the like. The positive is that you don’t get a refresh flash, but is that enough to warrant the change?
One of the use cases on the page is the rich table component. That should definitely be able to refresh and page without the page changing, but when the main content gets swapped in, I start to question. What do you think?
Matt uses SiteMesh, a great technology that can knit together the look and feel, and can fit in very well in this kind of world. If a browser goes directly to a page it can piece together the entire page, but an Ajax request can come in and it can just send back the main content. Very nice.
I am so happy that the NDA mess is over! Clancy has written about how you can have your iPhone Web app run in full screen and has a demo app that shows it off:
Here's an interesting link for a Friday. Viktor Zeman on Quality Unit sent us a link to "PostAffiliateXpress", some boring IT application with an interesting interface and an even more intriguing back-end.
The UI combines a Vista-like "Start" menu along with an OS X-like dock (using everyone's favorite fish-eye widget). It also has a built-in widget system that leverages Google Widgets. Overall, it's a pretty nice implementation of a desktop and windowing in Ajax.
The framework itself is "GwtPHP" which attempts to take all the advantages of GWT and deploy them to PHP backends in an attempt to solve the problem of limited Java-friendly hosting services. Unfortunately, the framework isn't available for use until sometime in early November.
Dual-License
The developers intend to use the familiar "free for hobbyists, pay up for commercial use" licensing model (what their licensing page calls a "what for what" model).
Give some feedback
Viktor says that they are quite keen to get feedback from folks on the project, so interested folks should get in touch, let them know what you think about the licensing model, and perhaps get early access, etc.
I got to meet Aaron Newton at The Ajax Experience, and he is a thinker. He was really taking in the various talks, and interactions, and you could tell that he was trying to work out various angles on the frameworks. What makes them different? What makes them popular? Where are they going?
He wrote a really nice post on some of these thoughts that goes into detail on different patterns for JavaScript programing. The meme at the show was definitely "the frameworks all do the same thing, just with a different looking API" which makes it even harder to put your finger on differences sometimes. Aaron does a good job.
John Resig himself gave a talk comparing the frameworks. Considering that he is Mr. jQuery, I thought he was very unbiased and had some good thoughts:
Kyle McGregor took a look at the JavaScript games for Life out there and decided to write a Canvas version that ends up being a lot snappier. The entire game is pretty small: