AjaxAC is an open-source framework written in PHP, used to develop/create/generate AJAX applications. The fundamental idea behind AJAX (Asynchronous JavaScript And XML) is to use the XMLHttpRequest object to change a web page state using background HTTP sub-requests without reloading the entire page. It is released under the terms of the Apache License v2.0.
Download
- ajaxac 1.0.0a released (Sun, 29 Jan 2006 23:18:22 GMT)
Released at Sun, 29 Jan 2006 23:18:22 GMT by zervaas
Includes files: ajaxac-1.0.0a.tar.bz2 (4740 bytes, 7314 downloads to date), ajaxac-1.0.0a.tar.gz (5047 bytes, 24205 downloads to date)
[Download] [Release Notes] - 10 releases total
- SourcForge project page
Sample Applications
- GoogleSuggestCloneJax - A clone of the Google Suggest tool, using a MySQL backend to fetch the suggestions.
- CountryRegionCityJax - An application that demonstrates how the framework works. This example dynamically populates Country, Region/State and City data from a server-side data file.
- ArithmeJax - A simple application used to perform server-side arithmetic.
Articles
- Cloning Google Suggest with AjaxAC, By Quentin Zervaas. This 16 page article covers how to implement a system such as Google Suggest using AjaxAC, JavaScript, CSS and PHP.
- AjaxAC and Middle Eastern encoding, By Hatem. Some great suggestions for making AjaxAC work with Middle Eastern encodings.
Latest News
- New releases (2006-01-29)
- AjaxAC 1.0 details (2005-11-06)
- 0.4.5 (2005-10-25)
- 0.4.4 released (2005-08-07)
- All news (rss)
Features
The basic idea behind AjaxAC is that you create an AjaxAC application, which in itself contains a number of action handlers and event handlers. An application in this context might mean an entire web site powered by AJAX, or it could mean a subset of a form (such as the CountryRegionCityJax example, which could be a small part of a signup form, for example).
- All application code is self-contained in a single class (plus any additional JavaScript libraries)
- Calling PHP file / HTML page is very clean. All that is required is creating of the application class, then referencing the application JavaScript and attaching any required HTML elements to the application.
- Built in functionality for easily handling JavaScript events
- Built in functionality for creating subrequests and handling them
- Allows for custom configuration values, so certain elements can be set at run time
- No messy JavaScript code clogging up the calling HTML code - all events are dynamically attached
- Easy to integrate with templating engine due two above 2 reasons
- Easy to hook in to existing PHP classes or MySQL database for returning data from subrequests
- Extensible widget structure to be able to easily create further JavaScript objects (this needs a bit of work though)
Roadmap
Here are future features to be included in AjaxAC:
- Standard data exchange format(s) - for returning data from subrequests
- Debugging capabilities
- Logging capabilities
- Caching / Cache prevention - mechanisms to force caching or to prevent it, depending on needs
- Sychronization status - Easy hooks to notify user what is happening (e.g. "Loading...")
- Predictive download - Hooks to allow for predictive download for various speedups
- Non-JavaScript fallbacks - Allow mechanisms to easily be integrated when a user doesn't use JavaScript
- Submission throttling - Prevent excessive subrequests from taking place
- Error handling - E.g. dealing with a subrequest that fails
- Bookmarking capabilities - Easily generate URLs that will hit the application at a particular state (e.g. if site content is dynamically loaded then user should be able to bookmark an address that will take them directly to their current page)
- Streamlined JavaScript code generation - some aspects of code generation are not too clean at this stage. This includes streamlining of handling subrequest responses
- Self-documenting features - so the developer creating the calling file knows which configuration variables to set and which HTML elements to create to attach to application
- Support for other programming languages - currently this library is for PHP only, but we aim to extend this to Perl, Python, Java, .NET, ColdFusion, etc...
- XML support - There's no native XML handling in AjaxAC, which is odd because that's a key component of AJAX! Anyway, this will occur shortly.
- JavaScript obfuscator/compressor - This is to reduce the output size of generated JavaScript to reduce download times / bandwidth usage. It wouldn't necessarily be to make the code impossible for end-users to read, but it would probably do this also.
- Cross-browser compatibility - At this stage AjaxAC generated code has only been tested with Internet Explorer 6 and FireFox.
Documentation
At this stage documentation is fairly non-existant, apart from the API documentation in the core classes, and extensive creation notes in the sample applications.
Contact Us
All questions/suggestions/comments can be directed to ajax@zervaas.com.au.
Other AJAX Resources
- Ajax Matters - AJAX development information
- Ajaxian.com - Dion and Ben's Ajax mission
- AJAX Patterns: Design Patterns for AJAX Usability - A very good reference for AJAX application design