Skip to content
iskitz edited this page May 21, 2012 · 38 revisions

ajile

__A__dvanced __J__avaScript __I__mporting & __L__oading __E__xtension enables namespace creation and on-demand script loading in browser-based JavaScript environments.

Release History

  • 2007.12.30: Ajile 1.2.1

    • New: iCab 3.0.3+, OmniWeb 5.6+, Opera 5+, and SeaMonkey 1.0+ support.
    • New: Firebug, YUI, & Mochikit log level (info, warn, error) support.
    • New: SyntaxHighlighter JScript Brush with on-demand loading.
    • New: Ajile's re-initialization is now auto-detected and handled.
    • New: Ajile's version preserved even when removed from file name.
    • New: Global undefined for pre-JavaScript 1.3 browsers.
    • Improved: Fixed script double-loading bug seen in IE browsers.
    • Improved: Fixed log output corruption bug.
    • Improved: IE detection using JScript conditional compilation.
    • Improved: Ajile's runtime instance is now a light object literal.
    • Improved: Ajile's runtime source is now DOM invisible.
    • Improved: Faster & more efficient directive fail-safes.
    • Improved: More robust Import & Include listener notification.
    • Improved: More robust & efficient Ajile.ShowLog().
    • Improved: Performance boost via fail-fasts, variable caching, & less strings.
    • Improved: Updated Examples page content, layout & keyboard navigation.
  • 2007.12.25: Ajile 1.1.5

  • 2007.10.05: Ajile 0.9.9.2

    • Improved: IE support via refactored Ajile.Unload().
    • Improved: Fixed logging typo caused by Ajile 0.9.9's refactoring.
    • Improved: Safari support via Namespace in SyntaxHighlighter.
  • 2007.09.28: Ajile 0.9.9.1

    • Improved: Fixed MVC bug observed when "." is in a page's query string.
    • Improved: Fixed minor regression caused by Ajile 0.9.9's refactoring.
    • Improved: Code cleanup on Examples page.
    • Improved: Fixed errors in Directives & Options API documentation.
  • 2007.09.16: Ajile 0.9.9

    • Improved: Faster Import via code refactoring.
    • Improved: Fixed bug with versioned Imports and Includes.
    • Improved: Fixed bug with wildcard Includes.
    • Improved: Code cleanup and refactoring for improved performance.
    • Improved: Fixed debug log/Firebug compatibility issue.
    • Improved: Fixed Directives API documentation typos
  • 2007.09.04: Ajile 0.9.8

    • New: Now supports Mozilla 0.9.1+ browsers.
    • New: Cloaking now supported in IE 5.01+.
    • New: Now uses YUI Compressor for code compression (~25K).
    • New: Examples page now use SyntaxHighlighter 1.5.1 for code highlighting.
    • Improved: Ajile.Unload() now unloads empty com.iskitz.ajile namespace.
    • Improved: Ajile.Unload() now unloads all legacy directives.
    • Improved: Updated Ajile.Unload() description in API docs.
    • Improved: Naming conflict warning provides more alternatives.
    • Improved: Code cleanup and refactoring for better cross-browser support.
    • Improved: Examples page clean-up and LoadExample correction.
    • Improved: Restored Examples page support for Blazer 3.0 on Treo 600.
    • Improved: Fixed month error in debug log's date-time stamp.
  • 2007.07.30: Ajile 0.9.5

    • New: Include directive for importing without short-name access.
    • New: Now supports Camino 1.0+ browsers.
    • Improved: Cloaking now degrades gracefully for older browsers.
    • Improved: Cleaner log output with shorter timestamp & better grouping.
    • Improved: Added protection for improper instantiation of custom data types.
    • Improved: Better support for older browsers.
    • Improved: General code cleanup.
  • 2007.07.24: Ajile 0.9

    • New: Supports all Firefox, IE 4.01+, and Netscape 6.0.1+ browsers.
    • New: Ajile.Unload([ns|module]) for namespace & module unloading.
    • New: Now uses jsUnit as testing framework.
    • New: Debug log integration with Firebug, MochiKit, & YUI loggers.
    • Improved: Full API backwards compatibility to JSPackaging 1.0 using legacy option.
    • Improved: Stronger defense against external Object.prototype changes.
    • Improved: Simplified examples & updated Examples page with unobtrusive scripting.
    • Improved: Compressed using custom_rhino.jar.
    • Improved: Discontinued packer use; broke working code & incompatible with IE 4 & 5
  • 2007.03.11: Ajile 0.7.9

    • New: legacy load-time option to control backwards compatibility.
    • New: Ajile.EnableLegacy() to control backwards compatibility.
    • New: Legacy support is disabled by default.
    • New: Added documentation for all load-time options.
    • Improved: Ajile.EnableOverride() now works as intended.
    • Improved: Added packed version to download; used Dean Edward's Packer.
    • Improved: Removed documentation for deprecated features.
  • 2006.12.29: Ajile 0.7.8

    • New: Safari supported added.
    • Improved: Import handling of circular references.
  • 2006.12.16: Ajile 0.7.5

    • New: Active defense against external Object.prototype changes.
    • Improved: Treo 600 Blazer 3.0 browser support restored.
    • Improved: Import behavior stabilized for supported browsers.
    • Improved: Import more reliable for slow connections.
    • Improved: Import("some.namespace.*") leakage stopped.
    • Improved: More accurate Import & Load event logging.
    • Improved: General code cleanup & other minor fixes.
  • 2006.09.28: Ajile 0.7

    • New: refresh load-time option to manipulate script caching.
    • New: Ajile.EnableRefresh() to manipulate script caching.
    • Improved: More efficient & reliable Import for supported browsers.
    • Improved: More compatible cloaking for varied Import scenarios.
    • Improved: More accurate and informative debug logging.
    • Improved: Logging of Import listener notifications.
    • Improved: Logging of Namespace load-time options.
    • Improved: Removed status bar message.
    • Improved: General code cleanup and other minor fixes.
  • 2006.09.11: Ajile 0.6.5

    • New: mvcshare load-time option to manipulate shared auto-loader.
    • New: Simultaneous per-page & shared auto-loader use by default.
    • Improved: MVC: Reintroduced Ajile 0.5.5's shared auto-loader.
    • Improved: MVC: Fixed dot-delimited per-page auto-loader loading.
    • Improved: Import listeners only notify after dependency validation.
    • Improved: General code cleanup and other minor fixes.
  • 2006.08.02: Ajile 0.6.2

    • New: Versioned Imports.
    • New: Configurable name conflict handling.
    • New: Configurable runtime source code cloaking.
    • New: Load-time option setting (set options in Ajile's src tag).
    • New: Import event notification.
    • New: Version detection from filename.
    • Improved: MVC support with per-page auto-loaders that replace version 0.5.5's shared auto-loader.
    • Improved: Support wildcard imports for single file namespaces.
    • Improved: Programmatic option setting.
    • Improved: Greater packaging flexibility (not just '.' or '/')
    • Improved: More informative debug log output.
    • Improved: Faster Import path resolution.
  • 2006.07.11: Ajile 0.5.5

    • Improved: Restored browser support for Blazer 3.0 on Treo 600.
    • Improved: Fixed wild-card imports: Import("com.mydomain.*");
    • Improved: More user-friendly debug log viewing via Ajile.ShowLog().
    • Improved: Better runtime source code cloaking.
    • Improved: Modified Load to circumvent MSIE 6 DOM incompatibility.
    • Improved: Removed enhanced window.alert() due to MSIE 6 DOM conflicts.
  • 2006.06.08: Ajile 0.5

    • New: Now supports Opera 7.54+.
    • New: Automatic runtime source code cloaking.
    • New: Simplified use via shared auto-loader (index.js).
      • Simplifies use by making the com.iskitz.ajile.<version>.js script file the only one that needs to be specified in the web page. All other script/module dependencies can be defined within the file without modifying the web page, great for MVC implementations!.
    • New: Debug log viewing via Ajile.ShowLog() function.
    • New: Memory management via Ajile.Unload() function.
    • New: HTML DOM Insertion of inline JavaScript.
    • Improved: Faster importing with no window.onload dependency.
    • Improved: Debug logging via enhanced window.alert() function.
    • Improved: Renamed Ajile.DOT_NAMESPACE property to Ajile.USE_NAME.
    • Improved: Renamed Ajile.DIR_NAMESPACE property to Ajile.USE_PATH.
    • Improved: Backwards compatibility for renamed properties.
  • 2006.01.22: Ajile 0.4

    • New: ImportAs directive:
      • ImportAs ("MyAlias", "com.yoursite.SpecialType");
      • Increases the developer's ability to control imported types or objects and is an excellent means for handling type ambiguities.
    • New: Ambiguity example showcasing ImportAs.
    • Improved: Renamed Package directive to Namespace.
    • Improved: Renamed PackageException to NamespaceException.
    • Improved: Backwards compatibility for Package and PackageException.
    • Improved: Better auto-detection of script path and packaging style.
    • Improved: Better resource cleanup when unloaded.
  • 2005.11.01: Ajile 0.3.7

    • Improved: Namespace changed to com.iskitz.ajile.
    • Improved: Fixed bug with automatic path detection for imports.
    • Improved: Single module for DOM 2 EventTarget emulation.
    • Improved: Compressed Ajile and DOM 2 EventTarget modules.
      • Ajile and the DOM 2 EventTarget modules are now 50% smaller. The reduced footprint results in significantly faster load times when used in the Internet environment.
    • Improved: General cleanup (dead code removal, etc.).
  • 2005.09.30: Ajile 0.3.6b

    • Ajile 0.3.6b is the first release of Ajile, previously known as JSPackaging. This release introduces a stable and more reliable approach to dynamic JavaScript importing and loading.
    • New: Renamed JSPackaging to Ajile, a play on the word agile, meaning fast, light and nimble.
    • New: Now automatically identifies and loads a HTML page's JavaScript file[s].
  • 2004.05.05: JSPackaging 2.1

  • 2004.02.08: JSPackaging 2.0

    • Ease of use was a key focus in this release filled with improvements and new functionality.
  • 2003.11.19: JSPackaging 1.0

    • Michael Lee (iskitz) created the JSPackaging client-side JavaScript module to eliminate the name and scope collisions that can occur when including multiple external JavaScript files within a HTML document. JSPackaging provides an API for:
      • Defining namespaces that can be used for encapsulating data and functionality.
      • Defining script dependencies.
      • Simplified external script loading via:
        • HTML DOM Insertion of local JavaScript files.
        • HTML DOM Insertion of remote JavaScript files without same-origin restrictions.