-
Notifications
You must be signed in to change notification settings - Fork 0
Home
iskitz edited this page Jan 28, 2013
·
38 revisions
__A__dvanced __J__avaScript __I__mporting & __L__oading __E__xtension enables namespace creation and on-demand script loading in browser-based JavaScript environments.
- 2013.01.28: ajile 1.5.0
- Improved: Fixed bug where aggressive cloaking stopped modules from being evaluated.
- Improved: Fixed bug that caused cloaking of JavaScript's core Object and Function types.
- Improved: Fixed bug in detecting a namespace's load-time options.
- 2013.01.27: ajile 1.4.5
-
New: Ensures the execution order of loaded and imported scripts in modern browsers via
script.async=false
. - Improved: Fixed bug that skipped notifying internal import listeners.
-
Improved: Compatibility: WebWorkers and nodeJS: Removed unnecessary
window
reference from allwindow.clear*
andwindow.set*
timer statements. - Improved: Compatibility: WebKit 125.4: Commented-out un-parsable callback function names.
- Improved: Added a "global" scope reference to ajile's closure.
-
Improved: Replaced all non-window-specific
window
references with the global reference. -
Improved: Minor Code Cleanup:
Load()
-
New: Ensures the execution order of loaded and imported scripts in modern browsers via
- 2013.01.27: ajile 1.3.8
-
New: Supports
Ajile.AddImportListener ("<any-global-property-name>", ...);
. -
New: Supports
Ajile.AddImportListener ("ShortName", ...);
-
Improved: Fixed bug that broke
Ajile.AddImportListener (function listener (moduleName){...});
. - Improved: Faster and more stable import notifications.
- Improved: Faster namespace-to-path resolution via 98% less comparisons on average, 30% less in worst case.
-
Improved:
Import()
,ImportAs()
andInclude()
looks for the module/namespace in memory before attempting to load its script. -
Improved:
Import()
,ImportAs()
andInclude()
used afterAjile.Unload()
will re-load the module/namespace's script. -
Improved:
Import()
,ImportAs()
andInclude()
auto-resolves module and namespace paths using their namespace notation. -
Improved: Minor Code Cleanup:
Load()
and internal import methods.
-
New: Supports
- 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.
-
Improved: IE support via refactored
- 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
-
Improved: Faster
- 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 emptycom.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.
-
New:
- 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.
-
New:
- 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.
-
New:
- 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.
-
New:
- 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!.
- Simplifies use by making the
-
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 toAjile.USE_NAME
. -
Improved: Renamed
Ajile.DIR_NAMESPACE
property toAjile.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 toNamespace
. -
Improved: Renamed
PackageException
toNamespaceException
. -
Improved: Backwards compatibility for
Package
andPackageException
. - Improved: Better auto-detection of script path and packaging style.
- Improved: Better resource cleanup when unloaded.
-
New:
- 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.).
-
Improved: Namespace changed to
- 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
- New functionality, improved ease of use, and many other improvements.
- 2003.11.19: JSPackaging 1.0
-
Michael Lee (iskitz) created JSPackaging to eliminate the client-side JavaScript name and scope collisions that often can occur when using multiple JavaScript libraries or files within a single HTML document. JSPackaging provides an API for:
- Defining namespaces 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.
-
Michael Lee (iskitz) created JSPackaging to eliminate the client-side JavaScript name and scope collisions that often can occur when using multiple JavaScript libraries or files within a single HTML document. JSPackaging provides an API for: