@@ -1,11 +1,15 @@
1 1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
This file provides a JS interface into the core functionality of
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- a whiki CGI back-end.
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ JSON-centric back-ends. It sends GET or JSON POST requests to
4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ a back-end and expects JSON responses. The exact semantics of
5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the underlying back-end and overlying front-end are not its concern,
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ and it leaves the interpretation of the data up to the client/server
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ insofar as possible.
4 8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5 9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
All functionality is part of a class named WhAjaj, and that class
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- acts as namespace for the framework.
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ acts as namespace for this framework.
7 11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8 12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Author: Stephan Beal (http://wanderinghorse.net/home/stephan/)
9 13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10 14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
License: Public Domain
11 15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -94,13 +98,11 @@
94 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
On success it returns an Object containing the key/value pairs
95 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parsed from the string.
96 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FIXME: for keys in the form "name[]", build an array of results,
98 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
like PHP does.
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FIXME: keys w/o '=', or with no value, "should probably" be
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- treated as boolean flags with a value of true.
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
102 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
103 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhAjaj.processUrlArgs = function(str) {
104 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0 === arguments.length ) {
105 107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (undefined === typeof window) ||
106 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
!window.location ||
@@ -269,12 +271,15 @@
269 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
override any client-defined setting.
270 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
271 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Must be one of 'GET' or 'POST'. For custom connection
272 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
implementation, it may optionally be some
273 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
implementation-specified value.
276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Normally the API can derive this value automatically - if the
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request uses JSON data it is POSTed, else it is GETted.
274 279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- method:'POST',
280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ method:'GET',
276 281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
277 282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
278 283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
A hint whether to run the operation asynchronously or
279 284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
not. Not all concrete WhAjaj.Connector.sendImpl()
280 285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
implementations can support this. Interestingly, at
@@ -291,40 +296,38 @@
291 296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
implementations can support this.
292 297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
293 298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
loginName:undefined,
294 299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
295 300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- An HTTP authentication login password for the AJAX
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ An HTTP authentication login password for the AJAJ
297 302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
connection. Not all concrete WhAjaj.Connector.sendImpl()
298 303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
implementations can support this.
299 304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
300 305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
loginPassword:undefined,
301 306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
302 307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
303 308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
A connection timeout, in milliseconds, for establishing
304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- an AJAX connection. Not all concrete
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ an AJAJ connection. Not all concrete
305 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhAjaj.Connector.sendImpl() implementations can support this.
306 311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- timeout:6000,
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /**
310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- If an AJAX request receives JSON data from the back-end,
311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- that data is passed as a plain Object as the response
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- parameter. The initiating request object is passed as
313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- the second parameter, but clients can normally ignore it
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (only those which need a way to map specific requests to
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- responses will need it).
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Note that the response might contain error information
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- which comes from the back-end. The difference between
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this error info and the info passed to the onError()
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callback is that this data indicates an application-level
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- error, whereas onError() is used to report
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- connection-level problems or when the backend produces
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- non-JSON data (which is unexpected and is as fatal to the
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- request as a connection error).
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ timeout:10000,
313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ If an AJAJ request receives JSON data from the back-end, that
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ data is passed as a plain Object as the response parameter
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (exception: in jsonp mode it is passed a string). The initiating
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request object is passed as the second parameter, but clients
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ can normally ignore it (only those which need a way to map
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ specific requests to responses will need it).
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Note that the response might contain error information which
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ comes from the back-end. The difference between this error info
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ and the info passed to the onError() callback is that this data
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ indicates an application-level error, whereas onError() is used
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ to report connection-level problems or when the backend produces
327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ non-JSON data (which, when not in jsonp mode, is unexpected and
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ is as fatal to the request as a connection error).
326 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
327 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onResponse: function(response, request){},
328 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
329 332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
330 333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
If an AJAX request fails to establish a connection or it
@@ -340,11 +343,11 @@
340 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
implementation with something which integrates into
341 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
their application.
342 345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
343 346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onError: function(request, connectOpt)
344 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- alert('AJAX request failed:\n'
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ alert('AJAJ request failed:\n'
346 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+'Connection information:\n'
347 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+JSON.stringify(connectOpt,0,4)
348 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
349 352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
},
350 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -360,11 +363,11 @@
360 363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
propagates the exception back to the caller.
361 364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
362 365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
beforeSend: function(request,opt){},
363 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
364 367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Called after an AJAX connection attempt completes,
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Called after an AJAJ connection attempt completes,
366 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regardless of success or failure. Passed the same
367 370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parameters as beforeSend() (see that function for
368 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
details).
369 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
370 373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Here's an example of setting up a visual notification on
@@ -389,11 +392,20 @@
389 392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@endcode
390 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
391 394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Set the beforeSend/afterSend properties to those
392 395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
functions to enable the notifications by default.
393 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- afterSend: function(request,opt){}
397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ afterSend: function(request,opt){},
398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ If jsonp is a string then the WhAjaj-internal response
401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ handling code ASSUMES that the response contains a JSONP-style
402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ construct and eval()s it after afterSend() but before onResponse().
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ In this case, onResponse() will get a string value for the response
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ instead of a response object parsed from JSON.
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonp:undefined
395 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
396 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
397 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
398 410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
399 411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Tries to find the given key in any of the following, returning
@@ -529,10 +541,15 @@
529 541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
530 542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Calling opt.onSuccess()
531 543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
532 544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Calling opt.onError() in several common (potential) error
533 545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cases.
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - If resp is-a String and opt.jsonp then resp is assumed to be
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ a JSONP-form construct and is eval()d BEFORE opt.onResponse()
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ is called. It is arguable to eval() it first, but the logic
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ integrates better with the non-jsonp handler.
534 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
535 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
The sendImpl() should return immediately after calling this.
536 553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
537 554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
The sendImpl() must call only one of onSendSuccess() or
538 555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onSendError(). It must call one of them or it must implement
@@ -553,17 +570,17 @@
553 570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return false;
554 571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
555 572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
556 573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 'string' === typeof resp ) {
557 574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
try {
558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- resp = JSON.parse(resp);
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ resp = opt.jsonp ? eval(resp) : JSON.parse(resp);
559 576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} catch(e) {
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ opt.errorMessage = e.toString();
560 578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onError.apply( opt, [request, opt] );
561 579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
562 580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
563 581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
565 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
try {
566 583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( WhAjaj.isFunction( opt.onResponse ) ) {
567 584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opt.onResponse( resp, request );
568 585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
569 586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return true;
@@ -1009,9 +1026,9 @@
1009 1026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1010 1027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
1011 1028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sendImpl() holds a concrete back-end connection implementation. It
1012 1029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
can be replaced with a custom implementation if one follows the rules
1013 1030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
described throughout this API. See WhAjaj.Connector.sendImpls for
1014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- the concrete implementatios included with this API.
1031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the concrete implementations included with this API.
1015 1032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1016 1033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhAjaj.Connector.prototype.sendImpl = WhAjaj.Connector.sendImpls.XMLHttpRequest;
1017 1034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
//WhAjaj.Connector.prototype.sendImpl = WhAjaj.Connector.sendImpls.jQuery;
1018 1035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!