src/cm/media/js/lib/yui/yui_3.10.3/releasenotes/HISTORY.get.md
changeset 525 89ef5ed3c48b
equal deleted inserted replaced
524:322d0feea350 525:89ef5ed3c48b
       
     1 Get Utility Change History
       
     2 ==========================
       
     3 
       
     4 3.10.3
       
     5 ------
       
     6 
       
     7 * No changes.
       
     8 
       
     9 3.10.2
       
    10 ------
       
    11 
       
    12 * No changes.
       
    13 
       
    14 3.10.1
       
    15 ------
       
    16 
       
    17 * No changes.
       
    18 
       
    19 3.10.0
       
    20 ------
       
    21 
       
    22 * No changes.
       
    23 
       
    24 3.9.1
       
    25 -----
       
    26 
       
    27 * No changes.
       
    28 
       
    29 3.9.0
       
    30 -----
       
    31 
       
    32 * Added fake transaction object to Node.js version
       
    33 
       
    34 3.8.1
       
    35 -----
       
    36 
       
    37 * No changes.
       
    38 
       
    39 3.8.0
       
    40 -----
       
    41 
       
    42 * No changes.
       
    43 
       
    44 3.7.3
       
    45 -----
       
    46 
       
    47 * Fixed Get issues, highlighted by IE10.
       
    48 
       
    49   1) IE10 seems to interrupt JS execution, in the case of a 304'ing script to invoke
       
    50   the onLoad handler. If this happened inside the transaction execute loop, the transaction
       
    51   would terminate early (call onSuccess before all scripts were done), because the _waiting
       
    52   count would only reflect the number of scripts added to the DOM, when the loop was
       
    53   interrupted. Changed the logic so that we only finish a transaction when the expected
       
    54   number of requests are accounted for which seems reasonable in general.
       
    55 
       
    56   Also wrapped the internal onLoad/onError callbacks in a setTimeout for IE10, so we're
       
    57   re-introducing asynchronicty for external onSuccess, etc. app code. We can take this out
       
    58   when/if the bug below gets fixed.
       
    59 
       
    60   http://connect.microsoft.com/IE/feedback/details/763871/dynamically-loaded-scripts-with-304s-responses-interrupt-the-currently-executing-js-thread-onload
       
    61 
       
    62   2) transaction._finish() would move on to the next transaction, before the current
       
    63   transaction's onSuccess/Finish/End listeners were invoked, since the logic to move to
       
    64   the next transaction was invoked before the `on` listeners were invoked. This meant that
       
    65   for all browsers, when issuing a CSS transaction followed by a JS transaction, the CSS
       
    66   success callback wouldn't be invoked until the JS transaction was initiated.
       
    67 
       
    68   3) Added user-agent to feature test for async support, because IE10 wasn't returning true for it.
       
    69   If IE10 ends up fixing the issue below by GA, we'll pull out the explicit ua test.
       
    70 
       
    71   https://connect.microsoft.com/IE/feedback/details/763477/ie10-doesnt-support-the-common-feature-test-for-async-support
       
    72 
       
    73   ---
       
    74 
       
    75   Get should work OK with IE10 now aside from one pending issue. If you issue 2 Get
       
    76   requests to the same 404ing script, IE10 doesn't call the success handler for the
       
    77   subsequent valid (200 etc.) request. This seems to be an IE10 issue, which we cannot
       
    78   control:
       
    79 
       
    80   https://connect.microsoft.com/IE/feedback/details/763466/ie10-dynamic-script-loading-bug-async-404s
       
    81 
       
    82 3.7.0
       
    83 -----
       
    84 
       
    85 * No changes.
       
    86 
       
    87 3.6.0
       
    88 -----
       
    89 
       
    90 * No changes.
       
    91 
       
    92 3.5.1
       
    93 -----
       
    94 
       
    95 * Fixed a bug that could cause CSS requests to hang on WebKit versions between
       
    96   535.3 and 535.9 (inclusive).
       
    97 
       
    98 
       
    99 3.5.0
       
   100 -----
       
   101 
       
   102 * [!] The `Y.Get.abort()` method is now deprecated and will be removed in a
       
   103   future version of YUI. Use the transaction-level `abort()` method instead.
       
   104 
       
   105 * [!] The `charset` option is now deprecated and will be removed in a future
       
   106   version of YUI. Specify an `attributes` object with a `charset` property
       
   107   instead.
       
   108 
       
   109 * [!] The `win` option, which allowed you to specify the window into which
       
   110   nodes should be inserted, is now deprecated and will be removed in a future
       
   111   version of YUI. Use the `doc` option instead, which allows you to specify a
       
   112   document, as opposed to a window (which makes more sense).
       
   113 
       
   114 * [!] The `win` property of transaction objects is now deprecated and will be
       
   115   removed in a future version of YUI. Since any given request in a transaction
       
   116   may now have its node inserted into any document, the best way to get this
       
   117   info is to find the request you're interested in inside the transaction's
       
   118   `requests` property, then look at that request's `doc` property to figure out
       
   119   what document it's associated with.
       
   120 
       
   121 * [!] The `tId` property of transaction objects is now deprecated and will be
       
   122   removed in a future version of YUI. Use the `id` property instead.
       
   123 
       
   124 * The Get Utility has been completely rewritten to improve performance and add
       
   125   much-needed functionality. Backwards compatibility has been maintained, but
       
   126   some methods and APIs have been deprecated and will be removed in a future
       
   127   version of YUI.
       
   128 
       
   129 * Multiple scripts within a transaction are now loaded in parallel whenever
       
   130   possible in browsers that are capable of preserving execution order regardless
       
   131   of load order. This improves performance in those browsers when loading
       
   132   multiple scripts.
       
   133 
       
   134 * Multiple CSS resources within a transaction are now always loaded
       
   135   asynchronously, since CSS rules are applied based on the order of link nodes
       
   136   in the document, not the order in which resources finish loading. This
       
   137   improves performance in all browsers when loading multiple CSS files.
       
   138 
       
   139 * Script and CSS resources that fail to load due to HTTP or network errors are
       
   140   now correctly treated as failures in all browsers that support `error` events
       
   141   on script or link nodes. Most browsers support this on script nodes, but only
       
   142   Firefox 9+ currently supports this on link nodes.
       
   143 
       
   144 * CSS load completion is now detected reliably in older versions of
       
   145   WebKit (<535.24) and Firefox (<9), which don't support the `load` event on
       
   146   link nodes. Unfortunately, while our workaround makes it possible to detect
       
   147   when loading is complete, we still can't detect whether it completed
       
   148   successfully or with an error, so in these browsers CSS resources are always
       
   149   assumed to have loaded successfully.
       
   150 
       
   151 * Added a `Y.Get.load()` method, which allows you to load both CSS and JS
       
   152   resources in a single transaction.
       
   153 
       
   154 * Added a `Y.Get.js()` method, which is now the preferred way to load JavaScript
       
   155   resources. `Y.Get.script()` is now an alias for `js()`.
       
   156 
       
   157 * Added a new `Y.Get.options` property containing global options that should be
       
   158   used as the default for all requests, along with similar `cssOptions` and
       
   159   `jsOptions` properties containing default options that apply only to CSS or
       
   160   JS requests, respectively, and that take precedence over the global defaults.
       
   161 
       
   162 * Added a new `pollInterval` option, which allows you to customize the polling
       
   163   interval (in milliseconds) used to check for CSS load completion in WebKit and
       
   164   Firefox <=8.
       
   165 
       
   166 * The `css()`, `js()`, `load()`, and `script()` methods now return an instance
       
   167   of `Y.Get.Transaction`, which encompasses one or more requests and contains
       
   168   useful properties and methods for getting information about and manipulating
       
   169   those requests (and related HTML nodes) as a unit.
       
   170 
       
   171 * The `css()`, `js()`, `load()`, and `script()` methods now accept an optional
       
   172   Node.js-style callback function as either the second or third parameter. This
       
   173   function will be called after the transaction finishes. The first argument
       
   174   is an array of errors, or `null` on success. The second argument is the
       
   175   transaction object.
       
   176 
       
   177 * The `css()`, `js()`, `load()`, and `script()` methods now accept URL strings,
       
   178   objects of the form `{url: '...', [... options ...]}`, or arrays of URL
       
   179   strings and/or objects. This allows you to specify per-URL options if desired,
       
   180   such as node attributes, parent documents, `insertBefore` nodes, etc.
       
   181 
       
   182 * The logic used to determine where a node should be inserted when no custom
       
   183   `insertBefore` node has been specified has changed slightly. By default,
       
   184   script and link nodes will now be inserted before the first `<base>` element
       
   185   if there is one, or failing that, before the last child of the `<head>`
       
   186   element, or if there's no `<head>` element, before the first `<script>`
       
   187   element on the page.
       
   188 
       
   189 * The source for the `get` module has moved from `src/yui` to `src/get`. This
       
   190   allows it to be built separately from the core YUI modules.
       
   191 
       
   192 
       
   193 3.4.1
       
   194 -----
       
   195 
       
   196 * No changes.
       
   197 
       
   198 
       
   199 3.4.0
       
   200 -----
       
   201 
       
   202 * Added an `async` option to `script()`. When set to `true`, the specified
       
   203   scripts will be loaded asynchronously (i.e. in parallel), and order of
       
   204   execution is not guaranteed. The `onSuccess` callback will be called once,
       
   205   after all scripts have finished loading.
       
   206 
       
   207 * Added an `onProgress` callback, which is useful when loading multiple scripts
       
   208   either in series or in parallel by passing an array of URLs to `script()`.
       
   209   The `onProgress` callback is called each time a script finishes loading,
       
   210   whereas `onSuccess` is only called once after all scripts have finished
       
   211   loading.
       
   212 
       
   213 
       
   214 3.3.0
       
   215 -----
       
   216 
       
   217 * No changes.
       
   218 
       
   219 
       
   220 3.2.0
       
   221 -----
       
   222 
       
   223 * No changes.
       
   224 
       
   225 
       
   226 3.1.1
       
   227 -----
       
   228 
       
   229 * No changes.
       
   230 
       
   231 
       
   232 3.1.0
       
   233 -----
       
   234 
       
   235 * Inserted script nodes get `charset="utf-8"` by default.
       
   236 
       
   237 
       
   238 3.0.0
       
   239 -----
       
   240 
       
   241 * Initial release.