-var jsc = now(),
+(function( jQuery ) {
+
+var jsc = jQuery.now(),
rscript = /<script(.|\s)*?\/script>/gi,
rselectTextarea = /select|textarea/i,
rinput = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,
serialize: function() {
return jQuery.param(this.serializeArray());
},
+
serializeArray: function() {
return this.map(function() {
return this.elements ? jQuery.makeArray(this.elements) : this;
});
jQuery.extend({
-
get: function( url, data, callback, type ) {
// shift arguments if data argument was omited
if ( jQuery.isFunction( data ) ) {
}
},
- // Last-Modified header cache for next request
- lastModified: {},
- etag: {},
-
ajax: function( origSettings ) {
var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings),
jsonp, status, data, type = s.type.toUpperCase();
s.dataType = "script";
// Handle JSONP-style loading
- window[ jsonp ] = window[ jsonp ] || function( tmp ) {
+ var customJsonp = window[ jsonp ];
+
+ window[ jsonp ] = function( tmp ) {
data = tmp;
jQuery.ajax.handleSuccess( s, xhr, status, data );
jQuery.ajax.handleComplete( s, xhr, status, data );
- // Garbage collect
- window[ jsonp ] = undefined;
+
+ if ( jQuery.isFunction( customJsonp ) ) {
+ customJsonp( tmp );
- try {
- delete window[ jsonp ];
- } catch( jsonpError ) {}
+ } else {
+ // Garbage collect
+ window[ jsonp ] = undefined;
+ try {
+ delete window[ jsonp ];
+ } catch( jsonpError ) {}
+ }
+
if ( head ) {
head.removeChild( script );
}
}
if ( s.cache === false && type === "GET" ) {
- var ts = now();
+ var ts = jQuery.now();
// try replacing _= if it is there
var ret = s.url.replace(rts, "$1_=" + ts + "$2");
xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url]);
}
- if ( jQuery.etag[s.url] ) {
- xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]);
+ if ( jQuery.ajax.etag[s.url] ) {
+ xhr.setRequestHeader("If-None-Match", jQuery.ajax.etag[s.url]);
}
}
}
// Fire the complete handlers
- jQuery.ajax.handleComplete( s, xhr, status, data );
+ if ( !jsonp ) {
+ jQuery.ajax.handleComplete( s, xhr, status, data );
+ }
if ( isTimeout === "timeout" ) {
xhr.abort();
// Send the data
try {
- xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null );
+ xhr.send( (type !== "GET" && s.data) || null );
} catch( sendError ) {
jQuery.ajax.handleError( s, xhr, null, e );
// Counter for holding the number of active queries
active: 0,
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {},
+
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
etag = xhr.getResponseHeader("Etag");
if ( lastModified ) {
- jQuery.lastModified[url] = lastModified;
+ jQuery.ajax.lastModified[url] = lastModified;
}
if ( etag ) {
- jQuery.etag[url] = etag;
+ jQuery.ajax.etag[url] = etag;
}
// Opera returns 0 when status is 304
}
});
+
+// For backwards compatibility
+jQuery.extend( jQuery.ajax );
+
+})( jQuery );