From fc84b9db10da2f69a830dbb9aa78b9c214b297ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Fri, 22 Dec 2006 13:56:36 +0000 Subject: [PATCH] Implemented global ajax settings - no documentation yet --- build/test/data/testsuite.css | 4 ++-- src/ajax/ajax.js | 44 +++++++++++++++++------------------ src/ajax/ajaxTest.js | 16 ++++++++++++- 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/build/test/data/testsuite.css b/build/test/data/testsuite.css index b42f2b79..76319d87 100644 --- a/build/test/data/testsuite.css +++ b/build/test/data/testsuite.css @@ -1,6 +1,6 @@ body, div, h1 { font-family: 'trebuchet ms', verdana, arial; margin: 0; padding: 0 } -body { margin: 0; padding: 0; font-size: small; } -h1 { padding: 15px; margin: 0; font-size: large; background-color: #06b; color: white; } +body {font-size: 10pt; } +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 } .pass { color: green; } diff --git a/src/ajax/ajax.js b/src/ajax/ajax.js index 2e222d45..b6a18f4f 100644 --- a/src/ajax/ajax.js +++ b/src/ajax/ajax.js @@ -407,7 +407,7 @@ jQuery.extend({ }, // timeout (ms) - timeout: 0, + //timeout: 0, /** * Set the timeout of all AJAX requests to a specific amount of time. @@ -428,11 +428,26 @@ jQuery.extend({ * @cat AJAX */ 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 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. @@ -555,22 +570,7 @@ jQuery.extend({ */ ajax: function( s ) { // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout - s = jQuery.extend({ - 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); + s = jQuery.extend({}, jQuery.ajaxSettings, s); // if data available if ( s.data ) { @@ -677,14 +677,12 @@ jQuery.extend({ if(s.timeout > 0) setTimeout(function(){ // Check to see if the request is still happening - if (xml) { + if(xml) { // Cancel the request xml.abort(); - if ( !requestDone ) onreadystatechange( "timeout" ); - - // Clear from memory - xml = null; + if( !requestDone ) + onreadystatechange( "timeout" ); } }, s.timeout); diff --git a/src/ajax/ajaxTest.js b/src/ajax/ajaxTest.js index 1cd072f9..1ae6bbf3 100644 --- a/src/ajax/ajaxTest.js +++ b/src/ajax/ajaxTest.js @@ -127,6 +127,7 @@ test("test global handlers - failure", function() { counter.error = counter.success = counter.complete = counter.send = 0; $.ajaxTimeout(500); $.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.success == 0, 'Check failed request without globals' ); ok( counter.complete == 0, 'Check failed request without globals' ); @@ -331,4 +332,17 @@ test("$.ajax - beforeSend", function() { start(); } }); -}); \ No newline at end of file +}); + +test("ajaxSetup()", function() { + expect(1); + stop(); + $.ajaxSetup({ + url: "data/name.php?name=foo", + success: function(msg){ + ok( msg == 'bar', 'Check for GET' ); + start(); + } + }); + $.ajax(); +});