The problem with SproutCore -- Esteemed colleague Steve Webster notes: 'SproutCore doesn't just ignore progressive enhancement — it hacks it into tiny little pieces, urinates all over them and then mails them back to you one by one.'
The essentials of DOM scripting in 10 minutes -- Chris Heilmann cleverly demonstrates DOM in this screencast, using a piece of markup and showing the effects of various DOM incantations. Its a practical overview, and packs in a lot of detail in 10 minutes.
Netvibes: A Lesson in How to Build an Insecure Widgets Platform -- Dare explains some of the insecurities of Netvibes' handling of third party widgets, and how it opens up security holes. Dare offers suggestions on closing those holes. A practical explanation.
Event-Driven Web Application Design -- Christian Heilmann outlines a core technique for building web applications - designing it around the use of events. This allows the code to be more modular and more maintainable. Chris bridges the divide between web standards based approach to development, and the framework-based approach to development. Its a key concept to building complex interactions in web applications.
JSON -- Douglas Crockford reminisces about how JSON came about, and the history of its naming. Now its a globally recognised standards, displacing XML in a number of web services applications.
Bonzai menu -- Christian Heilmann does a tree menu without using loops. It demonstrates the flexibility and power of Event delegation - catching events at a higher level in the document. It drastically cuts down on the number of events you need to add to a document. One event handler per menu, rather than one per link in the menu.
Event Delegation versus Event Handling -- Christian Heilmann presents some working code examples and an explanation over Event Delegation. Its the difference between assigning the same event handler to hundreds of links versus assigning the event handler to one parent node.
Douglas Crockford: ++ -- The ++ operators of C-style languages are useful, but can lead to usage that's difficult or harder for humans to interpret. The main element of a good programming style is that code must be readable by humans - that means the code does what it looks like its doing. One of the problems with ++ are the side effects when used in expressions - avoiding that usage makes code easier to understand.
Adobe Flex 2 Language Reference -- A Javadocs-like ActionScript reference for Adobe's Flex 2 language platform. Its ActionScript 3.0 which is based on EcmaScript 4.0. The MXML elements are codified as pure ActionScript objects in the mx.* packages.
JSON All The Way -- JSON is proving to be one of the most practical options to delivering semi-structured content on the Web. As Drew notes: 'if you want people to hack on your APIs, roll out JSON support.'. Just from experience, when using a data source you trust, its much quicker setting up a JSON transaction than the XML equivalent.
Avoid Common Pitfalls in Greasemonkey -- Mark Pilgrim dissects the security issues of the 0.3 Greasemonkey, and describes how the new architecture of Greasemonkey works, pointing out pitfalls and how to address them. Excellent resource (via dive into greasemonkey)
Dive Into Greasemonkey -- Mark Pilgrim's essential online book about developing Greasemonkey scripts. Excellent starting point for Greasemonkey developers. (Its a prelude to O'Reilly's Greasemonkey hacks, also by Pilgrim).
Greasemonkey: Writing User Scripts -- GreaseMonkey scripts trigger off before the window.onload event, so adding other events needs to wait until window.onload. Amongst the other useful information offered.
Web Services + JSON = Dump Your Proxy -- Calling JSON web services using the script element bypasses the default security model - so no back-to-original host proxy script is needed. Very clever, and useful.
Wikipedia: DOM Events -- Tables of events from typical mouse and form events, through to DOM mutation events, Microsoft-specific events, and XUL events. (via Think Vitamin and Dustin Diaz)
15 things you can do with Yahoo! UI -- Collection of interesting pointers and demo of library effects from Dustin Diaz. The DOM Mutation events caught my eye - a selection of useful looking events worth adding listeners to, including DOMNodeInserted.
RFC 4627: application/json -- JSON has its own mime-type ratified, and now its own RFC number.
Dynamic Content with DOM-2 -- A good overview of manipulating a DOM object with standard DOM methods (as well as the de-facto innerHTML). (via Gez)
Google Web Toolkit -- A Java framework for writing AJAX applications. Includes a browser history management so not breaking the back button. The HTML is quite old-school - which is a great pity.
AJAX, Accessibility & Screen Readers -- Ian Lloyd on brothercake's AJAX and screen readers articles. Accessible AJAX has a number of problems. The main issue is notifying screen readers of a change in the DOM.
Joe Clark: Iceweb 2006 speaker notes -- Joe does a talk about accessible AJAX. He tests Basecamp, and the results are surprising. Basecamp does work in screenreaders, but there are some problems that need to be overcome.
BadgerFish: Translating XML to JSON -- Very interesting concept, and probably useful for a DOM Scripter's toolbox. The examples show some intelligent namespace handling.
Externally Declared Global Variable Leak -- Mark Wubben uncoveres a memory leak not caused by closures. Caused by circular references in the window object and global attributes on the same object.
innerHTML vs. DOM = pot noodles vs. real cooking -- Chris Heilmann summarises the ongoing discussion about innerHTML versus DOM methods, and reaches a number of sensible conclusions.
The XMLHttpRequest Object -- W3C Working Draft (via diveintomark)
Introducing DOM Builder -- Object Notation way of building DOM structures
AJAX Resources for Beginners -- Good list of resources to get yourself started.
Learning Flash for programmers? -- I wonder if Simon Willison has reached the same conclusion I think I'm reaching: Flash is a decent platform for web-based, or web facing, applications. Perhaps even a complete replacement for AJAX.
Particle Tree: More love For JSON -- Getting started with using JSON for AJAX applications
Show love to the object literal -- 'The new syntax is called the object literal and is pretty close to sliced bread.' The advantage is that it allows you to 'namespace' your variables and methods.
QuirksMode: DOM Compatibility tables: Attributes -- Browser support for DOM attributes is 'A bloody mess.'. Go for formField.value instead of formField.getAttribute('value') first.
24 Bottles Of Beer -- Dean Edwards blogs about how DOM attributes and DOM properties are handled differently by browsers. Standards compliant browsers keep them separate, IE doesn't
Fixing the Back Button and Enabling Bookmarking for AJAX Apps -- Again based on the URL fragment as a means of saving the state of an application. This time using the Prototype library.
Developing Ajax applications that preserve standard browser functionality -- Uses fragment identifiers and window.location.hash to implement a simple state saver, thus making the browser back and forward buttons useful in an AJAX application. This approach is where I was leading up to with 'Fixing the back button that Ajax broke'.
XULRunner 126.96.36.199 Release Notes -- First stable developer preview release of XULRunner. It provides facilities for launching standalone XUL applications and embedding APIs which can be used to render web pages within native and Java applications.
Activity indicators -- A public domain collection of animated gifs for loading/waiting icons in AJAX applications. Useful.
Getting AJAX ready for prime time -- 'But the biggest obstacle to going Web-based is the fact that you need a big, fat pipe to the Internet whenever you want to work.'
XMLHTTP notes: abort() and Mozilla bug -- PPK works his way through a number of oddities around stopping an active XmlHttpRequest
The hows and whys of degradable Ajax -- strategies and techniques for building degradable Ajax applications
What is GreaseMonkey? -- Mark Pilgrim describes this useful Mozilla/Firefox extension as well as showing what it can do.
addEvent() recoding contest -- PPK is looking for an improvement to Scott Andrew's addEvent functions
Developing Firefox Extensions with GNU/Linux -- Step by step guide to building a new Firefox extension, including a build script in Python
Faster DHTML in 12 Steps -- Optimising DOM manipulation. Beware, contains some IE specific code (via Nate Koechley)
addEvent() considered harmful -- Peter Paul Koch explains the problems with Scott Andrew's useful addEvent functions
FireAnt -- Omar Shahine talks about the AJAX framework being developed for the Hotmail Frontdoor rewrite.
Moving Beyond the Basics: Scott Isaacs on AJAX Design Patterns -- List of problems that still need to be solved
Remote Scripting with AJAX, Part 1 -- A short example with code examples for client and server
Ajax Gotchas -- text/xml, IE caching and file locking
Understanding the Greasemonkey vulnerability -- Simon Willison explains the parts that combine to create this security hole. GreaseMonkey are taking action.
CNet: Standards activists target scripts -- 'The WaSP DOM Scripting Task Force proposes to solve this problem by the adoption of unobtrusive DOM scripting, a way of thinking based on modern, standards-compliant, accessible Web development best practices.'
Ajaxed out -- Summary of the O'Reilly Ajax Summit
AJAX Patterns: Design Patterns for AJAX Usability -- Answering the question: 'Why Ajax patterns' for XmlHttpRequest apps
XMLHttpRequest Tracing for AJAX debugging -- Greasemonkey script that logs XmlHttpRequest requests and responses
Ajax Mistakes -- Top 10 mistakes using XmlHttpRequest to dynamically update content
Ajax Patterns -- client-side and server-side patterns for XmlHttpRequest based applications
Dive into greasemonkey -- Mark Pilgrim is back with another awesome online book.
Writing User Scripts -- Authoring Greasemonkey scripts - uses anonymous functions to prevent global clobbering
DOM-Scripted Lists, Revisited -- gazingus improves on his original list-based DHTML menus (via kayodeok)
Ajax, promise or hype? -- Usability and accessibility ideas from Quirksmode
XULU - Cross Platform XML Application Framework -- cross-platform application framework based on the Mozilla codebase
AJAX and accessibility -- Practical suggestions on making XmlHttpRequest based applications accessible
Changelog for Opera Beta 2 for Windows -- Atom Support and improved XmlHttpRequest support (Google Suggest now works)
ECMAScript Language Specification -- HTML version of the ECMAScript specification (via virtuelvis)
ECMAScript Menu System -- Fantastic article about implementing an accessible dropdown menu system using DOM Scripting
DHTML is dead. Long live DOM Scripting. -- 'Rather than trying to rehabilitate and redefine DHTML, I think it's time we ditched the term entirely.'
XMLHttpRequest for The Masses -- Google is using it extensively, the future is bright for XmlHttpRequest. Opera support coming soon!
XML HTTP Request object. -- Opera 7.60 is starting to support XmlHttpRequest - Yipeee!!!
Safari and the HTTP Request Object -- Safari only supports GET and POST, and only text/xml Content-Type. Bizarre!
HTML escapes the browser -- Safari webkit engine does all the magic
Dynamic HTML and XML: The XMLHttpRequest Object -- supported in Safari 1.2