Connection Manager Release Notes *** version 2.2.2 *** * No revisions. *** version 2.2.1 *** * setForm() will include the correct name-value of the HTML Submit button clicked where multiple HTML Submit button options are present in an HTML form. To enable this feature, include the Event utility source file as a dependency before the Connection Manager source file. * The XHR implementation in IE6 and IE7, Opera, and Safari do not properly handle an HTTP 204 response. IE6/7 will instead return a Win error 1223. handleTransactionResponse() will treat 1223 as an HTTP 204, and route the response appropriately to the success callback. createResponseObject() will normalize the response object's status and statusText values to 204 and "No Content" respectively. However, no headers are returned. Opera and Safari provide no discernable response with HTTP 204(e.g., response object's properties are undefined). This response will trigger the failure callback with a status of 0 and statusText of "communication failure". *** version 2.2.0 *** * initHeader() now accepts a third argument as a boolean. When set to true, this specific header will automatically be sent with each transaction. Otherwise, the header will be set and sent for the specific transaction only. Example: initHeader('X-YUI-State','Beta', true); all transactions will send this header. * resetDefaultHeaders() will clear the default headers collection. * All Connection Mananger transactions will broadcast the header: "X-Requested- With: XMLHttpRequest". * This can be turned off: YAHOO.util.Connect.setDefaultXhrHeader(false); * The HTTP method argument in asyncRequest is now case-insensitive. * uploadFile() will now correctly handle the absence of a callback object, allowing the transaction to complete silently. *** version 0.12.2 *** * The Opera/Connection Manager concurrent object condition, described in version 0.12.0, no longer tests applies for Opera, version 9.10. *** version 0.12.1 *** * connection-debug.js corrected and synchronized with connection.js. Code inconsistencies between the two files existed in 0.12.0. *** version 0.12.0 *** * When uploading files via setForm() and asyncRequest includes a POST data argument, appendPostData() will create hidden input fields for each postData label/value and append each field to the form object. * setForm() returns the assembled label/value string of the parsed HTML form fields. * NOTE: Opera 9.02 does not allow for more than 12 concurrent Connection Manager objects. The following example creates 12 requests in a loop: for(var n=0; n<=12; i++){ conn[n] = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); } If n > 13, Opera 9.02 will crash. Connection manager objects count n must be <= 12 at all times. This condition was not present in Opera version 9.01. This condition does not apply to other A-Grade browsers ( *** version 0.11.3 *** * YUI Event dependency for file uploading is now optional. * uploadFile() now sets unique IDs for each file upload transaction to prevent iframe collisions with parallel uploads. * The callback object now has property responseXML to provide support for file upload transactions that return an XML document. * setForm() will verify if a select option value attribute is present and use its value, including empty string, before using the text node value. * Modified polling mechanism in handleReadyState() and handleTransactionResponse() to prevent infinite polling if JavaScript errors occur in the user-defined callback. * createFrame() will now accept a boolean argument of true to set the frame source to "javascript:false" to prevent IE from throwing security warnings in an HTTPS environment. * setHeader() now enumerates through the _http_header object using hasOwnProperty() to prevent collisions with members added to Object via prototype. * If using setForm() and asyncRequest includes a POST data argument, the data will be concatenated to the HTML form POST message. *** version 0.11.2 *** * No revisions. *** version 0.11.1 *** * uploadFile() now verifies the existence of callback.upload before invoking callback, with or without object scope. *** version 0.11.0 *** * Each transaction can be defined with a timeout threshold, in milliseconds, through the callback object. If the threshold is reached, and the transaction hasn't yet completed, the transaction will call abort(). * abort() will now accept a callback object as the second argument. The failure callback will receive a response object to indicate the transaction was aborted. * setForm() will now support file uploads by setting the second argument to true (e.g., YAHOO.util.Connect.setForm(formObject, true). File upload does not use the callback success or failure handler. Instead, it uses a new callback object handler: upload. * HTML form submit will no longer submit form fields without a defined name attribute. * The default POST header of 'Content-Type','application/x-www-form-urlencoded' can be overridden by calling setDefaultPostHeader(false). This will remove the default header from non-HTML form, POST submissions. * setHeader() now enumerates through the _http_header object with propertyIsEnumerable to prevent collisions with members added to Object via prototype. *** version 0.10.0 *** * handleTransactionResponse() now treats the full HTTP 2xx range as a success case, instead of just HTTP 200. * To accommodate multiple field values in Mozilla/Firefox, multiple initHeader calls with the same label will now result in the values concatenated to a comma- delimited string value. Example: Setting Content-Type:'application/x-www-form-urlencoded' and Content- Type:'text/xml' will result in Content-Type:'application/x-www-form-urlencoded, text/xml'. * Default polling interval lowered to 50ms. * YAHOO.util.Connect.setPollingInterval() will allow you to set a polling interval -- in milliseconds -- to override the default value. * YAHOO.util.Connect.getResponseHeader[headerLabel] now supported as a response object property to provide symmetry with the native XHR object's property. Example: YAHOO.util.Connect.getResponseHeader['Content-Length'] will return the value for the Content-Length header, if the header is available. * YAHOO.util.Connect.allResponseHeaders property renamed to getAllResponseHeaders to provide symmetry with the native XHR object's property. * YAHOO.util.Connect.setForm() now supports HTTP GET as well as HTTP POST. * YAHOO.util.Connect.setForm() now accepts an HTML form object as well as its name attribute value. * YAHOO.util.Connect.setForm() will not submit HTML form fields that are disabled or do not have a name attribute value. * [FIXED] Response exceptions result in infinite callback loop in Mozilla/Firefox. * [FIXED] YAHOO.util.Connect.abort() now properly clears polling interval. * [FIXED] isCallInProgress() now verifies whether XHR instance still exists, and returns false if the connection object is no longer available. *** version 0.9.0 *** * Initial release