- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
The YUI Library comes with a "Loader" module, that resolves YUI-module dependencies. Also, it combines numerous files into one single file to increase page loading performance. This works only for the "hosted" YUI library. This Loader module should basically do the same (in future). For two simple calls like e.g. "::YUI::loader require menu" and "::YUI::loader require datatable" it should take care of selecting all the files needed and assemble them into one single resource, that may be delivered. Note that this is not implemented yet.
Class Relations
::xotcl::Object create ::YUI::loader
Methods (to be applied on the object)
require (scripted, public)
YUI::loader require [ -module module ] [ -version version ]
This is the key function of the loader, that will be used by other packages.
- Switches:
- -module (optional)
- The YUI Module to be loaded
- -version (defaults to
"2.7.0b"
) (optional)- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
switch -- [string tolower $module] { utilities { # utilities.js: The utilities.js aggregate combines the Yahoo Global Object, # Dom Collection, Event Utility, Element Utility, Connection Manager, # Drag & Drop Utility, Animation Utility, YUI Loader and the Get Utility. # Use this file to reduce HTTP requests whenever you are including more # than three of its constituent components. ::xo::Page requireJS urn:ad:js:yui2:yahoo-dom-event/yahoo-dom-event ::xo::Page requireJS urn:ad:js:yui2:utilities/utilities } menubar { # # We should not have two different versions of the YUI # library on one page, because YUI2 (afaik) doesn't support # "sandboxing". If we use e.g. the yui-hosted utilities.js file here # we may end up with two YAHOO object definitions, because e.g. # the tree-procs uses the local yahoo-dom-event. # In future, the YUI loader object should be capable of # resolving such conflicts. For now, the simple fix is to stick to # the local versions, because then the requireJS function takes care # of duplicates. # :require -module "utilities" # todo : this is more than necessary foreach jsFile { container/container-min treeview/treeview-min button/button-min menu/menu-min datasource/datasource-min autocomplete/autocomplete-min datatable/datatable-min selector/selector-min } { ::xo::Page requireJS urn:ad:js:yui2:$jsFile } :require -module "reset-fonts-grids" :require -module "base" foreach cssFile { container/assets/container datatable/assets/skins/sam/datatable button/assets/skins/sam/button assets/skins/sam/skin menu/assets/skins/sam/menu treeview/assets/folders/tree } { ::xo::Page requireCSS urn:ad:css:yui2:$cssFile } } datatable { # see comment above :require -module "utilities" # todo : this is more than necessary foreach jsFile { container/container-min treeview/treeview-min button/button-min menu/menu-min datasource/datasource-min autocomplete/autocomplete-min datatable/datatable-min selector/selector-min } { ::xo::Page requireJS urn:ad:js:yui2:$jsFile } :require -module "reset-fonts-grids" :require -module "base" foreach cssFile { container/assets/container datatable/assets/skins/sam/datatable button/assets/skins/sam/button assets/skins/sam/skin menu/assets/skins/sam/menu } { ::xo::Page requireCSS urn:ad:css:yui2:$cssFile } } reset { ::xo::Page requireCSS urn:ad:css:yui2:reset/reset } fonts { ::xo::Page requireCSS urn:ad:css:yui2:fonts/fonts-min } grids { ::xo::Page requireCSS urn:ad:css:yui2:grids/grids } base { ::xo::Page requireCSS urn:ad:css:yui2:base/base } "reset-fonts-grids" { ::xo::Page requireCSS urn:ad:css:yui2:reset-fonts-grids/reset-fonts-grids } }
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables