Project

General

Profile

1
Connection Manager Release Notes
2

    
3
*** version 2.4.1 ***
4

    
5
No change
6

    
7
*** version 2.4.0 ***
8

    
9
* [FIXED] SF1804153.  Transactions initialized with setForm() now properly clear
10
the POST data field after each transaction.
11

    
12
* The callback object can accept a new member, cache, defined with a boolean
13
value.  If set to false (e.g., var callback = { cache:false };), a timestamp
14
will be appended to the URI to override HTTP GET caching.  This timestamp value
15
will appear as rnd=timestamp in the request querystring.
16

    
17
* Custom Events startEvent, completeEvent, and abortEvent now receive
18
callback.argument, if defined, in addition to the transaction ID.  Each Custom
19
Event's function handler receives two arguments -- the event type as the first
20
argument, and an array as the second argument.  The first element in the array
21
is the transaction ID, and the second element are any arguments defined in the
22
callback object.
23

    
24
*** version 2.3.1 ***
25

    
26
* setDefaultPostHeader() can now be overloaded with a boolean, string, or
27
number.  By default, POST transactions send the following Content-Type header:
28
'application/x-www-form-urlencoded; charset=UTF-8'.
29

    
30
A custom Content-Type header can now be set by passing its value to
31
setDefaultPostHeader().
32

    
33
* HTML form submissions now send a Content-Type header of "application/x-www-
34
form-urlencoded", omitting the charset=UTF-8 value.
35

    
36
* setDefaultXhrHeader() can now be overloaded with a boolean, string, or number.
37
By default, all transactions send a custom header of "X-Requested-
38
With:XMLHttpRequest".
39

    
40
This default header value can be overridden by passing the desired value as an
41
argument to setDefaultPostHeader().
42

    
43
* The file upload iframe's event listener is now explicitly removed before the
44
iframe is destroyed.
45

    
46
*** version 2.3.0 ***
47

    
48
* Custom Events are introduced in Connection Manager.  These events -- for a
49
non-file upload transaction -- are:
50

    
51
   * startEvent
52
   * completeEvent
53
   * successEvent
54
   * failureEvent
55
   * abortEvent
56

    
57
For transactions involving file upload with an HTML form, the events are:
58

    
59
   * startEvent
60
   * completeEvent
61
   * uploadEvent
62
   * abortEvent
63

    
64
* Event utility is a now Connection Manager dependency.
65

    
66
* abort() and isCallInProgress() are now functional for file upload
67
transactions.
68

    
69
* NOTE: The native XHR implementation in Safari 2.0.4 has been confirmed to leak
70
memory.
71

    
72
* UPDATE: The XHR implementation in Safari 3.0 beta(and WebKit builds) now
73
appear to handle HTTP 204 responses correctly.  XHR in Opera, as of 9.21, still
74
does not produce a valid HTTP status code with an HTTP 204 response.
75

    
76
*** version 2.2.2 ***
77

    
78
* No revisions.
79

    
80
*** version 2.2.1 ***
81

    
82
* setForm() will include the correct name-value of the HTML Submit button
83
clicked where multiple HTML Submit button options are present in an HTML form.
84
To enable this feature, include the Event utility source file as a dependency
85
before the Connection Manager source file.
86

    
87
* The XHR implementation in IE6 and IE7, Opera, and Safari do not properly
88
handle an HTTP 204 response.  IE6/7 will instead return a Win error 1223.
89
handleTransactionResponse() will treat 1223 as an HTTP 204, and route the
90
response appropriately to the success callback.  createResponseObject() will
91
normalize the response object's status and statusText values to 204 and "No
92
Content" respectively.  However, no headers are returned.
93

    
94
Opera and Safari provide no discernable response with HTTP 204(e.g., response
95
object's properties are undefined).  This response will trigger the failure
96
callback with a status of 0 and statusText of "communication failure".
97

    
98
*** version 2.2.0 ***
99

    
100
* initHeader() now accepts a third argument as a boolean.  When set to true,
101
this specific header will automatically be sent with each transaction.
102
Otherwise, the header will be set and sent for the specific transaction only.
103
Example: initHeader('X-YUI-State','Beta', true); all transactions will send this
104
header.
105
   * resetDefaultHeaders() will clear the default headers collection.
106

    
107
* All Connection Mananger transactions will broadcast the header: "X-Requested-
108
With: XMLHttpRequest".
109
   * This can be turned off: YAHOO.util.Connect.setDefaultXhrHeader(false);
110

    
111
* The HTTP method argument in asyncRequest is now case-insensitive.
112

    
113
* uploadFile() will now correctly handle the absence of a callback object,
114
allowing the transaction to complete silently.
115

    
116
*** version 0.12.2 ***
117

    
118
* The Opera/Connection Manager concurrent object condition, described in version
119
0.12.0, no longer tests applies for Opera, version 9.10.
120

    
121
*** version 0.12.1 ***
122

    
123
* connection-debug.js corrected and synchronized with connection.js.  Code
124
inconsistencies between the two files existed in 0.12.0.
125

    
126
*** version 0.12.0 ***
127

    
128
* When uploading files via setForm() and asyncRequest includes a POST data
129
argument, appendPostData() will create hidden input fields for each postData
130
label/value and append each field to the form object.
131

    
132
* setForm() returns the assembled label/value string of the parsed HTML form
133
fields.
134

    
135
* NOTE: Opera 9.02 does not allow for more than 12 concurrent Connection Manager
136
objects.
137

    
138
The following example creates 12 requests in a loop:
139
for(var n=0; n<=12; i++){
140
  conn[n] = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
141
}
142

    
143
If n > 13, Opera 9.02 will crash.  Connection manager objects count n must be <=
144
12 at all times.  This condition was not present in Opera version 9.01.
145

    
146
This condition does not apply to other A-Grade browsers (
147
http://developer.yahoo.com/yui/articles/gbs/gbs_browser-chart.html)
148

    
149
*** version 0.11.3 ***
150

    
151
* YUI Event dependency for file uploading is now optional.
152

    
153
* uploadFile() now sets unique IDs for each file upload transaction to prevent
154
iframe collisions with parallel uploads.
155

    
156
* The callback object now has property responseXML to provide support for file
157
upload transactions that return an XML document.
158

    
159
* setForm() will verify if a select option value attribute is present and use
160
its value, including empty string, before using the text node value.
161

    
162
* Modified polling mechanism in handleReadyState() and
163
handleTransactionResponse() to prevent infinite polling if JavaScript errors
164
occur in the user-defined callback.
165

    
166
* createFrame() will now accept a boolean argument of true to set the frame
167
source to "javascript:false" to prevent IE from throwing security warnings in an
168
HTTPS environment.
169

    
170
* setHeader() now enumerates through the _http_header object using
171
hasOwnProperty() to prevent collisions with members added to Object via
172
prototype.
173

    
174
* If using setForm() and asyncRequest includes a POST data argument, the data
175
will be concatenated to the HTML form POST message.
176

    
177
*** version 0.11.2 ***
178

    
179
* No revisions.
180

    
181
*** version 0.11.1 ***
182

    
183
* uploadFile() now verifies the existence of callback.upload before invoking
184
callback, with or without object scope.
185

    
186
*** version 0.11.0 ***
187

    
188
* Each transaction can be defined with a timeout threshold, in milliseconds,
189
through the callback object.  If the threshold is reached, and the transaction
190
hasn't yet completed, the transaction will call abort().
191

    
192
* abort() will now accept a callback object as the second argument.  The
193
failure callback will receive a response object to indicate the transaction was
194
aborted.
195

    
196
* setForm() will now support file uploads by setting the second argument to
197
true (e.g., YAHOO.util.Connect.setForm(formObject, true).  File upload does not
198
use the callback success or failure handler.  Instead, it uses a new callback
199
object handler: upload.
200

    
201
* HTML form submit will no longer submit form fields without a defined name
202
attribute.
203

    
204
* The default POST header of 'Content-Type','application/x-www-form-urlencoded'
205
can be overridden by calling setDefaultPostHeader(false).  This
206
will remove the default header from non-HTML form, POST submissions.
207

    
208
* setHeader() now enumerates through the _http_header object with
209
propertyIsEnumerable to prevent collisions with members added to Object via
210
prototype.
211

    
212
*** version 0.10.0 ***
213

    
214
* handleTransactionResponse() now treats the full HTTP 2xx range as a success
215
case, instead of just HTTP 200.
216

    
217
* To accommodate multiple field values in Mozilla/Firefox, multiple initHeader
218
calls with the same label will now result in the values concatenated to a
219
comma- delimited string value.
220
Example:
221
Setting Content-Type:'application/x-www-form-urlencoded' and Content-
222
Type:'text/xml' will result in Content-Type:'application/x-www-form-urlencoded,
223
text/xml'.
224

    
225
* Default polling interval lowered to 50ms.
226

    
227
* YAHOO.util.Connect.setPollingInterval() will allow you to set a polling
228
interval -- in milliseconds -- to override the default value.
229

    
230
* YAHOO.util.Connect.getResponseHeader[headerLabel] now supported as a response
231
object property to provide symmetry with the native XHR object's property.
232
Example:
233
YAHOO.util.Connect.getResponseHeader['Content-Length'] will return the value
234
for the Content-Length header, if the header is available.
235

    
236
* YAHOO.util.Connect.allResponseHeaders property renamed to
237
getAllResponseHeaders to provide symmetry with the native XHR object's
238
property.
239

    
240
* YAHOO.util.Connect.setForm() now supports HTTP GET as well as HTTP POST.
241

    
242
* YAHOO.util.Connect.setForm() now accepts an HTML form object as well as its
243
name attribute value.
244

    
245
* YAHOO.util.Connect.setForm() will not submit HTML form fields that are
246
disabled or do not have a name attribute value.
247

    
248
* [FIXED] Response exceptions result in infinite callback loop in
249
Mozilla/Firefox.
250

    
251
* [FIXED] YAHOO.util.Connect.abort() now properly clears polling interval.
252

    
253
* [FIXED] isCallInProgress() now verifies whether XHR instance still exists,
254
and returns false if the connection object is no longer available.
255

    
256
*** version 0.9.0 ***
257

    
258
* Initial release
259

    
(1-1/9)