The standards which define the web have grown organically over the past 17 years from a simple hypertext system for sharing scientific documents to a tangled web of technologies for specifying the display and behavior of increasingly complicated applications. Accordingly, they have accumulated powers and limits on those powers in an uneven, haphazard way.
These uneven limits pose a problem to web developers; when have an idea for an application, we're often unsure of even its basic possibility with open standards. Many of these limitations have workarounds, often quite baroque, that let us do what we want at the cost of infuriating complexity.
After the Great Web Standards Stagnation of 2000-2007, a new era of browser competition and the arrival of HTML 5 have finally begun to introduce new capabilities for web developers, so it's worth surveying what can and cannot now be done with pure Javascript and DOM in the browser.
Storing data locally on a user's computer has been handled up to now by one official mechanism, HTTP cookies, and a host of other hacks. Each mechanism has major drawbacks, including but not limited to security leaks, small amounts of storage, inefficient bandwidth use, and excessive server load.
HTML 5 promises to do away with these hacks, offering simple, standard,
local data storage in a couple of flavors. localStorage offers
persistent data per website, and
Surprisingly, Internet
Explorer is among those leading the way in support for HTML 5 storage, with
IE 8 beta 2 supporting both methods proposed in the spec. Webkit nightlies do
too, although neither Safari nor Chrome does. Firefox 3 supports an older
version of the spec.
Graphics