# Yahoo! UI Library

### get 2.9.0

Yahoo! UI Library > get > YAHOO.util.Get
Search:
Filters Show Private Show Protected Show Deprecated

## Class YAHOO.util.Get

Fetches and inserts one or more script or link nodes into the document. This utility can fetch JavaScript and CSS files, inserting script tags for script and link tags for CSS. Note, this is done via the normal browser mechanisms for inserting these resources and making the content available to code that would access it. Be careful when retreiving remote resources. Only use this utility to fetch files from sites you trust.

### Properties

#### nidx - `private int`

node index used to generate unique node ids

#### POLL_FREQ - `static int`

The default poll freqency in ms, when needed
Default Value: 10

#### PURGE_THRESH - `static int`

The number of request required before an automatic purge. property PURGE_THRESH
Default Value: 20

#### purging - `private boolean`

interal property used to prevent multiple simultaneous purge processes

#### qidx - `private int`

queue index used to generate transaction ids

#### queues - `private object`

hash of queues to manage multiple requests

#### TIMEOUT - `static int`

The length time to poll for varName when loading a script in Safari 2.x before the transaction fails. property TIMEOUT
Default Value: 2000

### Methods

#### _autoPurge

`private void _autoPurge ( )`
Removes processed queues and corresponding nodes

#### _finalize

`private void _finalize ( id )`
Called by the the helper for detecting script load in Safari

Parameters:
  `id <string>` the transaction id

#### _finish

`private void _finish ( id )`
The request is complete, so executing the requester's callback

Parameters:
  `id <string>` the id of the request

#### _linkNode

`private HTMLElement _linkNode ( url , win )`
Generates a link node

Parameters:
  `url <string>` the url for the css file
  `win <Window>` optional window to create the node in

Returns: `HTMLElement`
  the generated node

#### _next

`private void _next ( id , loaded )`
Loads the next item for a given request

Parameters:
  `id <string>` the id of the request
  `loaded <string>` the url that was just loaded, if any

#### _node

`private HTMLElement _node ( type , attr , win )`
Generates an HTML element, this is not appended to a document

Parameters:
  `type <string>` the type of element
  `attr <string>` the attributes
  `win <Window>` optional window to create the element in

Returns: `HTMLElement`
  the generated node

#### _purge

`private void _purge ( )`
Removes the nodes for the specified queue

#### _returnData

`private void _returnData ( )`
Returns the data payload for callback functions

#### _scriptNode

`private HTMLElement _scriptNode ( url , win )`
Generates a script node

Parameters:
  `url <string>` the url for the script file
  `win <Window>` optional window to create the node in

Returns: `HTMLElement`
  the generated node

#### _timeout

`private void _timeout ( id )`
Timeout detected

Parameters:
  `id <string>` the id of the request

#### _track

`private void _track ( type , n , id , url , win , qlength , trackfn )`
Detects when a node has been loaded. In the case of script nodes, this does not guarantee that contained script is ready to use.

Parameters:
  `type <string>` the type of node to track
  `n <HTMLElement>` the node to track
  `id <string>` the id of the request
  `url <string>` the url that is being loaded
  `win <Window>` the targeted window
  `qlength <object>` the number of remaining items in the queue, including this one
  `trackfn <Function>` function to execute when finished the default is _next

#### abort

`void abort ( either )`
Abort a transaction

Parameters:
  `either <string|object>` the tId or the object returned from script() or css()

#### css

`static tId: string css ( url , opts )`
Fetches and inserts one or more css link nodes into the head of the current document or the document in a specified window.

Parameters:
  `url <string>` the url or urls to the css file(s)
  `opts <object>` Options:
  onSuccess
    callback to execute when the css file(s) are finished loading The callback receives an object back with the following data:
    win
    the window the link nodes(s) were inserted into
  data
    the data object passed in when the request was made
  nodes
    An array containing references to the nodes that were inserted
  purge
    A function that, when executed, will remove the nodes that were inserted
scope
  the execution context for the callbacks
win
  a window other than the one the utility occupies
data
  data that is supplied to the callbacks when the nodes(s) are loaded.
insertBefore
  node or node id that will become the new node's nextSibling
charset
  Node charset, deprecated, use 'attributes'
attributes
  A hash of attributes to apply to dynamic nodes.

    YAHOO.util.Get.css("http://yui.yahooapis.com/2.7.0/build/menu/assets/skins/sam/menu.css");

    YAHOO.util.Get.css(["http://yui.yahooapis.com/2.7.0/build/menu/assets/skins/sam/menu.css",
    "http://yui.yahooapis.com/2.7.0/build/logger/assets/skins/sam/logger.css"]);

Returns: `tId: string`
  an object containing info about the transaction

#### queue

`private void queue ( type , url , opts )`
Saves the state for the request and begins loading the requested urls

Parameters:
  `type <string>` the type of node to insert
  `url <string>` the url to load
  `opts <object>` the hash of options for this request

#### script

`static tId: string script ( url , opts )`
Fetches and inserts one or more script nodes into the head of the current document or the document in a specified window.

Parameters:
  `url <string|string[]>` the url or urls to the script(s)
  `opts <object>` Options:
  onSuccess
    callback to execute when the script(s) are finished loading The callback receives an object back with the following data:
    win
      the window the script(s) were inserted into
    data
      the data object passed in when the request was made
    nodes
      An array containing references to the nodes that were inserted
    purge
      A function that, when executed, will remove the nodes that were inserted
  onFailure
    callback to execute when the script load operation fails The callback receives an object back with the following data:
    win
      the window the script(s) were inserted into
    data
      the data object passed in when the request was made
    nodes
      An array containing references to the nodes that were inserted successfully
    purge
      A function that, when executed, will remove any nodes that were inserted
  onTimeout
    callback to execute when a timeout occurs. The callback receives an object back with the following data:
    win
      the window the script(s) were inserted into
    data
      the data object passed in when the request was made
    nodes
      An array containing references to the nodes that were inserted
    purge
      A function that, when executed, will remove the nodes that were inserted
  scope
    the execution context for the callbacks
  win
    a window other than the one the utility occupies
  autopurge
    setting to true will let the utilities cleanup routine purge the script once loaded
  data
    data that is supplied to the callback when the script(s) are loaded.
  varName
    variable that should be available when a script is finished loading. Used to help Safari 2.x and below with script load detection. The type of this property should match what was passed into the url parameter: if loading a single url, a string can be supplied. If loading multiple scripts, you must supply an array that contains the variable name for each script.
  insertBefore
    node or node id that will become the new node's nextSibling
charset
  Node charset, deprecated, use 'attributes'
attributes
  A hash of attributes to apply to dynamic nodes.
timeout
  Number of milliseconds to wait before aborting and firing the timeout event

    // assumes yahoo, dom, and event are already on the page
      YAHOO.util.Get.script(
      ["http://yui.yahooapis.com/2.7.0/build/dragdrop/dragdrop-min.js",
       "http://yui.yahooapis.com/2.7.0/build/animation/animation-min.js"], {
        onSuccess: function(o) {
          YAHOO.log(o.data); // foo
          new YAHOO.util.DDProxy("dd1"); // also new o.reference("dd1"); would work
          this.log("won't cause error because YAHOO is the scope");
          this.log(o.nodes.length === 2) // true
          // o.purge(); // optionally remove the script nodes immediately
        },
        onFailure: function(o) {
          YAHOO.log("transaction failed");
        },
        data: "foo",
        timeout: 10000, // 10 second timeout
        scope: YAHOO,
        // win: otherframe // target another window/frame
        autopurge: true // allow the utility to choose when to remove the nodes
      });

Returns: `tId: string`
  an object containing info about the transaction

Copyright © 2011 Yahoo! Inc. All rights reserved.