Moved the RegExp in ajax.js out from inline, goes towards ticket #4111.

This commit is contained in:
John Resig 2009-07-19 19:44:15 +00:00
parent 5272ed28bc
commit eaca153aea

View file

@ -1,3 +1,13 @@
var jsc = now(),
rscript = /<script(.|\s)*?\/script>/g,
rselectTextarea = /select|textarea/i,
rinput = /text|hidden|password|search/i,
jsre = /=\?(&|$)/,
rquery = /\?/,
rts = /(\?|&)_=.*?(&|$)/,
rurl = /^(\w+:)?\/\/([^\/?#]+)/,
r20 = /%20/g;
jQuery.fn.extend({ jQuery.fn.extend({
// Keep a copy of the old load // Keep a copy of the old load
_load: jQuery.fn.load, _load: jQuery.fn.load,
@ -48,7 +58,7 @@ jQuery.fn.extend({
jQuery("<div/>") jQuery("<div/>")
// inject the contents of the document in, removing the scripts // inject the contents of the document in, removing the scripts
// to avoid any 'Permission Denied' errors in IE // to avoid any 'Permission Denied' errors in IE
.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")) .append(res.responseText.replace(rscript, ""))
// Locate the specified elements // Locate the specified elements
.find(selector) : .find(selector) :
@ -75,8 +85,8 @@ jQuery.fn.extend({
}) })
.filter(function(){ .filter(function(){
return this.name && !this.disabled && return this.name && !this.disabled &&
(this.checked || /select|textarea/i.test(this.nodeName) || (this.checked || rselectTextarea.test(this.nodeName) ||
/text|hidden|password|search/i.test(this.type)); rinput.test(this.type));
}) })
.map(function(i, elem){ .map(function(i, elem){
var val = jQuery(this).val(); var val = jQuery(this).val();
@ -99,8 +109,6 @@ jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".sp
}; };
}); });
var jsc = now();
jQuery.extend({ jQuery.extend({
get: function( url, data, callback, type ) { get: function( url, data, callback, type ) {
@ -186,7 +194,7 @@ jQuery.extend({
// checked again later (in the test suite, specifically) // checked again later (in the test suite, specifically)
s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s)); s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
var jsonp, jsre = /=\?(&|$)/, status, data, var jsonp, status, data,
type = s.type.toUpperCase(); type = s.type.toUpperCase();
// convert data if not already a string // convert data if not already a string
@ -198,7 +206,7 @@ jQuery.extend({
if ( s.dataType === "jsonp" ) { if ( s.dataType === "jsonp" ) {
if ( type === "GET" ) { if ( type === "GET" ) {
if ( !jsre.test( s.url ) ) { if ( !jsre.test( s.url ) ) {
s.url += (/\?/.test( s.url ) ? "&" : "?") + (s.jsonp || "callback") + "=?"; s.url += (rquery.test( s.url ) ? "&" : "?") + (s.jsonp || "callback") + "=?";
} }
} else if ( !s.data || !jsre.test(s.data) ) { } else if ( !s.data || !jsre.test(s.data) ) {
s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
@ -243,15 +251,15 @@ jQuery.extend({
var ts = now(); var ts = now();
// try replacing _= if it is there // try replacing _= if it is there
var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2"); var ret = s.url.replace(rts, "$1_=" + ts + "$2");
// if nothing was replaced, add timestamp to the end // if nothing was replaced, add timestamp to the end
s.url = ret + ((ret === s.url) ? (/\?/.test(s.url) ? "&" : "?") + "_=" + ts : ""); s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : "");
} }
// If data is available, append data to url for get requests // If data is available, append data to url for get requests
if ( s.data && type === "GET" ) { if ( s.data && type === "GET" ) {
s.url += (/\?/.test(s.url) ? "&" : "?") + s.data; s.url += (rquery.test(s.url) ? "&" : "?") + s.data;
} }
// Watch for a new set of requests // Watch for a new set of requests
@ -260,7 +268,7 @@ jQuery.extend({
} }
// Matches an absolute URL, and saves the domain // Matches an absolute URL, and saves the domain
var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url ); var parts = rurl.exec( s.url );
// If we're requesting a remote document // If we're requesting a remote document
// and trying to load JSON or Script with a GET // and trying to load JSON or Script with a GET
@ -598,7 +606,7 @@ jQuery.extend({
} }
// Return the resulting serialization // Return the resulting serialization
return s.join("&").replace(/%20/g, "+"); return s.join("&").replace(r20, "+");
} }
}); });