Implemented global ajax settings - no documentation yet

This commit is contained in:
Jörn Zaefferer 2006-12-22 13:56:36 +00:00
parent 30dc79f1d0
commit fc84b9db10
3 changed files with 38 additions and 26 deletions

View file

@ -1,6 +1,6 @@
body, div, h1 { font-family: 'trebuchet ms', verdana, arial; margin: 0; padding: 0 } body, div, h1 { font-family: 'trebuchet ms', verdana, arial; margin: 0; padding: 0 }
body { margin: 0; padding: 0; font-size: small; } body {font-size: 10pt; }
h1 { padding: 15px; margin: 0; font-size: large; background-color: #06b; color: white; } h1 { padding: 15px; font-size: large; background-color: #06b; color: white; }
h2 { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: small; font-weight: normal } h2 { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: small; font-weight: normal }
.pass { color: green; } .pass { color: green; }

View file

@ -407,7 +407,7 @@ jQuery.extend({
}, },
// timeout (ms) // timeout (ms)
timeout: 0, //timeout: 0,
/** /**
* Set the timeout of all AJAX requests to a specific amount of time. * Set the timeout of all AJAX requests to a specific amount of time.
@ -428,11 +428,26 @@ jQuery.extend({
* @cat AJAX * @cat AJAX
*/ */
ajaxTimeout: function(timeout) { ajaxTimeout: function(timeout) {
jQuery.timeout = timeout; //jQuery.timeout = timeout;
jQuery.ajaxSettings.timeout = timeout;
},
ajaxSetup: function(settings) {
jQuery.extend(jQuery.ajaxSettings, settings);
}, },
// Last-Modified header cache for next request // Last-Modified header cache for next request
lastModified: {}, lastModified: {},
// TODO document me
ajaxSettings: {
global: true,
type: "GET",
timeout: 0,
contentType: "application/x-www-form-urlencoded",
processData: true,
async: true
},
/** /**
* Load a remote page using an HTTP request. * Load a remote page using an HTTP request.
@ -555,22 +570,7 @@ jQuery.extend({
*/ */
ajax: function( s ) { ajax: function( s ) {
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
s = jQuery.extend({ s = jQuery.extend({}, jQuery.ajaxSettings, s);
global: true,
ifModified: false,
type: "GET",
timeout: jQuery.timeout,
complete: null,
success: null,
error: null,
dataType: null,
url: null,
data: null,
contentType: "application/x-www-form-urlencoded",
processData: true,
async: true,
beforeSend: null
}, s);
// if data available // if data available
if ( s.data ) { if ( s.data ) {
@ -677,14 +677,12 @@ jQuery.extend({
if(s.timeout > 0) if(s.timeout > 0)
setTimeout(function(){ setTimeout(function(){
// Check to see if the request is still happening // Check to see if the request is still happening
if (xml) { if(xml) {
// Cancel the request // Cancel the request
xml.abort(); xml.abort();
if ( !requestDone ) onreadystatechange( "timeout" ); if( !requestDone )
onreadystatechange( "timeout" );
// Clear from memory
xml = null;
} }
}, s.timeout); }, s.timeout);

View file

@ -127,6 +127,7 @@ test("test global handlers - failure", function() {
counter.error = counter.success = counter.complete = counter.send = 0; counter.error = counter.success = counter.complete = counter.send = 0;
$.ajaxTimeout(500); $.ajaxTimeout(500);
$.ajax({url: "data/name.php?wait=5", global: false, beforeSend: send, success: success, error: error, complete: function() { $.ajax({url: "data/name.php?wait=5", global: false, beforeSend: send, success: success, error: error, complete: function() {
var x = counter;
ok( counter.error == 1, 'Check failed request without globals' ); ok( counter.error == 1, 'Check failed request without globals' );
ok( counter.success == 0, 'Check failed request without globals' ); ok( counter.success == 0, 'Check failed request without globals' );
ok( counter.complete == 0, 'Check failed request without globals' ); ok( counter.complete == 0, 'Check failed request without globals' );
@ -331,4 +332,17 @@ test("$.ajax - beforeSend", function() {
start(); start();
} }
}); });
}); });
test("ajaxSetup()", function() {
expect(1);
stop();
$.ajaxSetup({
url: "data/name.php?name=foo",
success: function(msg){
ok( msg == 'bar', 'Check for GET' );
start();
}
});
$.ajax();
});